microrobotica monty peruzzo editore - 04 - comunicazioni

42

Upload: monty-microrobot

Post on 23-Mar-2016

231 views

Category:

Documents


7 download

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

Page 1: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni
Page 2: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni
Page 3: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

ltt

ili

ltl

11u

uN

,tll,,

COMUNICAzlIONIPresenlozione

Comuni cazione serialee parallela

processori ricevono le istruzionì dal program-ma in memoria, le eseguono gestendo i datiche hanno funzione di operandi e che arriva-no dalla memoria dei dat o dalle penferichedi ingresso, infine generano irisultati che

saranno scritti nella memoria o inviati alle periferi-che di uscita. In questo continuo eseguirsi di istru-zioni, il trasferimento dei dati e una parte vitale delp rocesso.

Fondamentalmente il trasferimento di informazionifra dlp disnnsitirii si nrro realizzare in drre modi: in

serie o in parallelo. Nella comunicazione seriale,l'informazione digitale costituita dai bit si muove su di

una sola linea, di bit in bit. ll trasmettitore colloca il

valore del bit da trasmettere sulla linea di comunica-zione, e il ricevitore lo raccoglie. Normalmente, per

sincronizzare il momento della trasmissione con quel-

LINEA DEI DATI

IINEA DI CLOCK

Nella comunicazrone seriale sincrona,ogni volLa che tl trasmetiltore deposita un bit sulla linea dei datie generato un impulso di clock^^- A^+^-^;^--^ t- -^--^l+a del medesimo dal ricevitore.PCr UCLVT ttilrtalg /o lcLlu,(r

lo della ricezione, si uti tzza una linea ausiliaria di

clock, in cuisitrasmette un impulso di clock ognivolta't-^ ^ ^'^'^^+^ ' '^'r-rorrrazione valida sulla linea deiLrtr c prc)c|Lc uìr ilrlal:tr anmA r:nnro<onta+n in 1in, 'rruuL I LvrrrL rupprrrrrrLdtU lll ìl9Uld.

BUS DEI DATIE DELLE ISTRUZIONI

Per eSeOuire le islrutrOni. jf nrora,<nro seamhia îonfíaudmente infOfmaZjOni COn jl reStO del Sistema

?f ,M\tt*r',/:/a,ta*/a//at/////z

Page 4: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNICAZIONI0g&iÈt.l

ta

aaaa

llll:]]r'

':n*rÍ!ll,

PresentcrzioneZrrrqiillll!llllllìll:3'tttttZ:rUlllìlliìiilftUtSll!]wì:3.rnttryt)a)l.,tlra\tearaat:: tf tnttttuu,tl::r,:::a a:r:rK::::lall\t\t:l:::ìitr,lt$

Nella comunicazione parallela il trasmettitore trasferisce diversi bit alla volta, di solito, come nel caso della figura, sono otto.

DATOrtrr'jl_t#lffirK.L'

I

CONTROLLO

LINEA DEI DATI

LINEA DEt CLOCK

Nella comunicazione seriale sincrona, il dispositivoche funziona come master genera gli impulsi di clock che determinano I'invio e la ricezione di ogni bit.

Con ogni impulso di clock si trasmette un bit, per

cui la velocità di trasferimento dell'informaztone In

modo seriale è fortemente condizionata dalla tecnolo-gia di iabbricazione dei componenti del sistema. ll

grande vantaggio della comunicazione seriale sta nella

sua semplicita e nel basso costo dell'implementazione,dato che è costituita con solo un paio di linee. Un altro,,rn+rnnin Ài nrracl-: .rrhitottrrr: rnqj comnli.o o À:invdlltdugru ur guc)Ld d' -' ".- -'' ' 'r"\ r c ud(u

dalla buona immunità al rumore, che assicura la puli--i- ,.J^i ^l-+i ^ ,zld ucl uoLr c uro rrov-ninro lrtnnhazza di tr:-

sm tssrone.

Nella comunicazio-ne parallela il trasmett -

tore e il ricevitore sonorolleoaf i da rrn hrrs dei..1-+i -^*^^-+^ -l- +-^+oaL, compo5ro ud rdnrelinpp nrr,rnti hit ha il

hvto rnn rr ri si sta l:vo-rando. La comunicazio-ne narallela a B hit e

molto drffusa; come per

il trasferimento seriale,

sono necessarie linee dr

conrrollo che determi-

nano il verso della

comunicazione e la sin-

cronizzazione fra la tra-smissione e la ricezione.

La comunicazione parallela e piu rapida di quei-la seriale, dato che con ogni impulso di clock si tra-sferiscono piu bit. Per contro e più complessa da

gestire e la linea di collegamento e piu cara, datoche ci sono prù fili da collegare. lnoltre la vicinan-za fra le linee dei dati la rende piu vulnerabile aì

rumore e alle interferenze, riducendo la distanzautile di comunicazione e la sicurezza nell'inter-scambio dei dati

Page 5: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

;-ra1i Ptesenlcrzione

'l

'',,Ììllitirl:ttkttùtl|]l]i]l]|]i]!r:]:]j.]i]l]lrj@3iìilùrt!ìifr @z.]:ry,,;t rrrrrt;ltll

TX

Nella comunicazione seriale asrncrona, ogni dispositivo contrene il propno generatore di frequenza

;@s#llll!$lRi]!]!]!1!iil4Èxwrntttt9ll@

t. Go 02A&{ffiffiW

Anche se il principio della comunicazione seriale si basa

sulla trasmissione dei bit di informazione ad uno ad

uno, i modi di farlo e le procedure per il colloquio fra il

trasmettitore e il ricevitore differiscono a seconda dei-^-, .1-^^i^ l, '.li',^".^ ^ -n+nalicasr, oanoo ruogo d orverse norme e metool, conosclu-

ti con il nome di protocolli.

I microcontroller impiegano soprattutto quattro trpi

di comunicazione seriale, che saranno descritti in segui-

to e che prendono il nome di:

20. l2C (lnter-lntegrated Circuit)

4". R5485, speciale per comunicazioni industriali su grande distanza.

La oifferenza fra la comunicaz:one sincrona e quella--i^-.^^- À.-l-+- ^l-ll- "d)rrLrur ro E uoLo uorro p[eS€fiZa O aSSenZa del Segnale di

clock. Nel modo sincrono i bit vengono spostati sulla

linea dei dati al ritmo degli impulsi del clock, generalo

da uno dei due comunicanti, che funziona da

" master".Nella comunicazione asincrona si suppone che

non esista segnale di clock, però sia il trasmettitoreche il ricevitore devono essere accoroatt nel momen-to di depositare e ricevere l'informazione. Per que-

sto rl trasferimento si realizza a una f requenza nor-

malizzala ìn "baude-rate" che puo essere di 330,

660, 1 .2A0, 2.400, 4.800, 9.600, 19.200, 38.400ecc Orresîa frenrienza coincide sia nel trasmettitoreche nel ricevitore, e ognuno di essi dispone del suonpnor:t.ìro indinendente come si nrro vedere dallaLv,! ,,,vil./Ll

figura.I diversi protocolli esistenti utilizzano differen-

ti strategie di comunicazione, che permettonoloro di ottimizzare differenti caratteristiche, spe-cializzandol i ner risolvere determrnate situazioni.Analizzeremo le loro proprieta, insieme ai vantaggie agli svantaggt.

Page 6: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNICAziIONIPresentcrzione

z'',:::ì1ìì]ìì.:1]1]l1j11lÍ]',]']']'e'''9j.iìiìììììjl']]j]j]l']]1','z:rA.ì]ì1ìì1]1]1ll

Neila comunicazione parallela il master governa il trasferrmento mediante tre linee di controllo

ùB

ltl

$

Nella famiglia PIC 1687X, ci sono dei controllori con una^^'+- ^-'-ll^l- -l-"^ - R hit rmnlompnt.rt,a qrrl srlicio norPUt LO POtOilEtO )tCVC d u utL it.tptEt |EttLoLo )ut -..._.-, t-_

Nella fotografia vecltamo un PC con ie periferrche cla.ssicheiastiera, mcuse e stampante. I prtmi due normalmente con'tunrcano tn ncdo senalementre la sfampante di solito t.tirltzza la parta parallela.

,.\fitt&t-: taa...,,,, |Nr1t111|..

supportare una comunicazione parallela bidirezionalecon altri dispositivi compatrbilr. Oltre alle otto linee delbrrs dei dati vpnannn i.as"nessi i sennali di controllo su

altre rre linee: Lettura (RD), Scrittura(WR) e Selezione del chip (CS). ll

disposrt,vo che funziona da master,governa lo stato di queste liree e

determina il verso della comunicazio-ne.

Quando il master attiva i segnalidi co-trcllo RD e CS, legge te rnfor-maz:oni che lo slave deposita srrilalinea dei dati. Se il master attiva i

segnali di controllo WR e CS, depo-sita un'informazione da B bit sullaI nea dei dat , in rodo che sia let[adallo slave.

Arcl-e se la comur cazicne pa.al-leia e mo'to p .r ve oce della seriale,gli rnconvenientr dati dalla sua com-oless.la. dai sr-,c cosîo e calia sensi-

b ta a rumore e.rile rte"e.eîze,la i'endono scons g1ìab le in moitecrrcostanze.

DATO

,fl.,-. IffirffirL;

-F&

E

€sCONTROLLO

Page 7: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNrcAztONI

It bus lzCl

u sviluppato dalla Philips Corporation per

coprire le proprie necessità nell'implementa-zione di elettrodomestici e di diversi prodottielettronici, che avevano bisogno di un'elevataìnterconnessione fra i numerosi circuiti inte-

grati che richiedevano le schede PCB. ll nome l2C signi-fica Inter-lntegrated Circuits, cioè lnterconnessione di

Circuiti Integrati.

ll grande vantaggio di questo bus è la semplicità,dato che ulilizza solo due linee oer mettere in comu-

(r)

nicazione fra loro gli elementi che sono collegati, più

una massa comune. Una ìinea bidirezionale denomi-nata SDA, trasferisce i bit di informazione in serie, e

un'altra denominata SCL, supporta gli impulsi del

clock. Uno dei dispositivr è costantemente collegatoal bus, con funzioni di master, mentre irestantihanno funzione di slave. Al master compete di deter-minare le caratteristiche del trasferimento e di gene-rare gli impulsi del clock sulla linea SCL, che è unidi-rezionale.

Schema dei collegamenti dei dispositivi in un bus l2C.

Uno di essi ha sempre la funzione di master, mentre i rimanenti funzionano come slave

Page 8: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

cofriluNacLzroNr

ewùnùù[sÌilr]rsr5!r,:à,@wqsFlf f

EEEBUtilizzando solo due piedini del PIC si implementa rl bus l2C e si espandono facilmente le ilsorse

le snecifiche o'ioinali di Phrlins nermplto\/:no la tra-smissione dei datisino ad una velocità di 100 Kbps, che

corrispondono al modo di lavoro "standard".Recentemente sono stati realizzati dei dispositivi l2C

che operano in modo "veloce", raggìungendo i 400Kbps.

Nel protocollo l2C ad ogni slave corrisponde un indi-rizzo, che è utilizzato dal master quando intende comu-nicare con uno di essi. Per questo motivo, quando il

master inizia la comunicazione con lo slave, invia l'indi-rizzo del medesimo e dopo specifica se vuole leggerlo oscriverlo. In alcuni dispositivi, il master, dopo queste

informazioni ne deve aggiungere altre, ad esempio se

desidera leggere una memoria dovrà indicare quantiindirizzi e quale di questi è il primo; infine si trasferisco-no i dati.

Tutti i dati o comandi che si trasmettono con il bus

12C devono avere la lunghezza di un byte, non ci sonolimiti invece per la quantità di byte che sì possono tra-

sferire inolîre dono ooni hvte trasferito il ricevitore del

medesimo deve generare un bit di RICONOSCIN/ENTO(ACK#) che indica la ricezione del byte e permette di

continuare il trasferimento. ll mancato riconoscimentodi un byte, provoca l'interruzione di tutto il trasferi-mento.

Ci sono microcontroller come il PlC16FB7X, che

contengono scritto sul silicio il protocollo l2C. Per il lorofunzionamento e sufficiente programmare adeguata-mente i registri dì controllo, e inviare ad un registro i

lrrrto d: tr2cmoiioro nr-, -ppure contenere su di un registro

i byte ricevuti dalla linea SDA, al ritmo degli impulsi di

SCL. Nei microcontroller come il PlC16F84, si puo utrliz-

zare il bus l2C riservando solamente due piedini per

emulare le linee SDA e SCL, e mediante le routines ade-n, rr{n +rî.'-^++^r^ ^ rirevere hit s|lnnorlSndO Via9UOLE, LtO)|tCLLEtC U rrlqVErE UrL )UpVWrl

software la normativa del bus.

f uso del bus 12C nei microcontroller permette una

semplice ed economica espansione delle loro risorse,

ipotecando unicamente due dei piedini di l/O. La mag-

Page 9: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

ai

, aa:

:

-.

.:.,:,:

',.:'

tt:l

gior parte di costruttori di circuiti integrati e di memo-rie drspongono di famiglie di dispositivi adattabili al busl2C: in questo modo, abbiamo a disposizione memorieSRAM, EPROM, EEPROM. convertitoriAD e DA, clock in

tempo reale, controller di LCD, controller di visualizza-tori, porte di l/O, ecc.. che possono comunicare con il :

microcontroller master e ampliare le sue risorse interne,comej||ustratone||afiguradel|apaginaprecedente.

,1 1.. iritf i',: t.ì !::ij''i'i: ,.i,, ,,.,..: 'i'i: .:...;.,.iti,t:,|lmasteriniziaeterminatuttiitrasferimenti.PerdareI'ordine di inizio, genera la condizione di start, che con-

,

siste nel produrre un fronte di discesa sulla linea SDA.mentre la linea SCL mantiene il livello alto. Per conclu- ',

dere un trasferimento genera la condizione di stop, checonsiste nel produrre un fronte di salita sulla linea SDA,mantenendo a livello alto la linea SCL, come possiamovedere nella figura.

ll primo byte di un trasferimento contiene l'indirizzodello slave con cui il master vuole stabilire la comunica-zione. In questo caso si ufilizza un indirizzo di sette

GO 04

bit, l'ottavo bit è l'ordine di Lettura/Scrittura (RA//#).

Dopo la condizione di STARI gli slave pongono in

alta impedenza il pìedino SDA, funzionando come rice-vrtori e restando in attesa di ricevere I'indirizzo dalmaster. Questi invia bit tramite la linea SDA, al ritmodegli impulsi del clock, generati in SCL. ll bit del datodeve rimanere stabile durante i fronti di SCL, in modoche gli slave possano interpretarlo correttamente.Come possiamo osservare nella figura, nel primo byte il

master funziona come trasmettitore, e dopo la condi-zione di SIART invia sette bit di indirizzo e un bit finaledi R //#, al ritmo degli otto primi impulsi di clock pre-senti sulla linea SCL. Inoltre genera un nono impulso diclock, in modo che lo slave a cui si è fatto accessoponga a livello basso la linea SDA, come riconoscimen-to della ricezione del byte (ACK#). In questo nonoimpulso di clock, il master funziona come ricevitore.

Nel primo byte del trasferimento, gli slave che fun-zionano come ricevitori mantengono la linea SDA in

alta impedenza, in attesa di ricevere l'informazione dalmaster. Nel nono impulso di clock, il master funziona

tNrzroTRASFERIMENTO

FINETRASFERIMENTO

5DA

scla{r:..^.-.^?"Y*r*CONDIZIONE

START

{r:,.^..-.^u3Y*reUCONDIZIONE

STOP

Per iniziare e concludere un trasferimento, il master qenera la condizione di START e quella di STOP rispettivamente

f,'":,' l' É t:; g,i fg È *-t ;:t: iì ril,:* +e +Í' ;:::i !;z +a l;, I jj;''{ì

t','

l:- .

"t:".,

I

Page 10: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNICAZIONI

MASTER RICEVITORE

STAVE TRASMETTITORECHE PONE SDA - O

f

sDA -U:f d3

",rl/llcoNDlztoNE rì

START

IMPULSI DI CTOCK

.,,,,";1

Nel pilmo byte il master invia I'indirizzo di 7 bit e il bit di R/W#.

Dopo, nel nono bit, funziona come ilcevitore del segnale di riconoscimento dello slave (ACK#)

come ricevitore e mette in alta impedenza la linea SDA,

in attesa che lo slave interessato la ponga a livello

basso,'come riconoscimento della ricezione del byte. La

linea dei dati SDA, puo cambiare di stato nel periodo in

cui il segnale di clock SCL è basso.

Nel procedimento standard del bus l2C si utilizzano 7

bit per definire gli indirizzi dei 128 possibili slave, che

possono essere collegati al sistema. Esiste un altro for-mato che ulilizza 10 bit per gli indirizzi, utìlizzando i

due primi byte del trasferimento per specificarli, così

come rappresentato nella fìgura.

Quando vari dispositivi possono funzionare da master,

esiste un procedimento che determina quale realizzerà

questa funzione, e in quale momento. Ogni possibile

master, deve verificare che il bit dei dati che trasmette

insieme al suo impulso di clock coincida con il livello

logico della linea SDA Se non è così, perde l'accesso e

il controllo del bus 5e un master immette un livello

logico 1 sulla linea SDA, e allo stesso tempo un altro

immette un livello logico 0, prevale il secondo bit (bit

dominante), per cui il primo master lascia il bus libero

sino a che il secondo genera la condizione di STOP e

mette fine al trasferimento.

I" BYTE 2" BYTE

Quando I'indirizzo ha il formato a 10 bit, il master lo rnvia nei primi due byte del trasferrmento.

Page 11: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

ì cofi,luNrcAzroNl,,ìl].

lnplenrenleizione del bus I2C su siliciolltqììì:lr.ììltlurlrtllllìlìììlìììììì:ììì:lììììì:liìiìllìlf ll

It bus lzC.

lcuni modelli di microcontroller PIC hanno il

protocollo del bus 12C implementato sul

chìp, e la sua gestione si realizza program-

mando i bit di alcuni registri. Questo è il

caso dei fratelli maggiori del PlC16tB4,ossia iPlC16FB7X. ll PlC16FB4 non ha il bus l2C imple-

(H)

f BUS INTERNO DEI DATI

mentato sul chip, e per gestirlo bisogna rìservare duenicdini à nrpsto comnito e realizzare le routines

software necessarie oer fare in modo che le informa-zioni seriali entrino e escano da uno di questi, secondo

il protocollo, e al ritmo degli impulsi di clock generati

con l'altro piedino.Nei PIC 1 6FB7X due

dei suoi piedini, il

RC3TSCK/SCL e rl

RC4/SDl/SDA. sonomuìtif unzione e f ra le

:ltre rosp nossonoessere rúilizzalt nersupportare i trasferi-menti del bus l2C tra-mìte il microcontrollerctocco r-he nro pssere

programmato in mododa funzionare comemasteroslave,eperindirizzi da 7 o da 'lO

bit ll blocco che contie-ne l'hardware del PIC

destinato al bus l2C sr

chiama SSP.

C'è un bit (SSPEN)

nel registro SSPCON

che quando vienemesso a 1, determina la

ronf inrrraziane dei nie-

dini RC3/SCL e

RC4/SDA per il trasfe'i-mento di informazioni<nttn il nrntnrnlln l?C

Questi piedini dellannrte C devonn essere

nrcredpntpmente conf i-

gurati come ingressi

scrivendo i bit corrispon-dpnti dol rpn istrn TR ISC .

8\

TETTURA tM8\

8\

rY '.RTTTURA

(Rca) mG5Ct

(Rc4) mSDA

StNCRONTSMO

Wt'ctocK

@

MrNDrRrzzo

COMPARATO

ATTIVA/DISATTIVABITSEP

Struttura generale dei registri dei PlCl 6FB7X incailcata di controllare itrasferimenti nel modo l2C.

Page 12: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COfUIUNTCAZIONIlnplemenfcrzione del bus l2C ss silicio

Per controllare il modulo SSP nel modo l2C abbiamoa disoosizione sei reoistri:

SSPSR: Registro di spostamento che convefte l'informazione da seriale a

e da oarallela a seriale.

microcontroller. Di seguito riportiamo r tre modi princi-pali, ognuno dei quali ha diverse varianti:

1". Modo slave con 7 bit di indirizzo.2". Modo slave con 10 bit di indirizzo.3". Modo master.

Le varianti ammesse all'interno del modo master, con i

relativi codici, sono riportate nella tabella

Per attivare il modulo SSP e configurare i piedini

RC3/SCL e RC4/SDA per iltrasferimento l2C, dobbiamoscrivere SSPEN = '1 . Se SSPEN = 0, le linee RC3 e RC4

funzionano come l/O digitali. Se si pone a O il bit CKP i

livolli di nrracti niodini ci rnn{inlr:nn ca.^n.ln la cnariilvEril ur vuc)rr vrqurr il )t Lwt il t9utqt tu )qLUt tuu tE )PEL|-

fiche l2C e si attiva i clock nel modo slave. SSPOV e ilflag di overflow che si pone a 1 quando si riempie il

ronictrn ((PR nrimr di :riar lottn il roni<trn SSPBUFF,

cosa chp srnnone la oerdita dell'ultima informazionericevuta, ll bit WCOL del registro SSPCON è un rileva-

tore di collisione in scrittura, e quando vale 1 significa

che c'è stato un tentatìvo di scrivere SSPBUFF senzanrim: :iror lottn l'infnr*î-i^n^ nraraAnn+aPrrro ovqr rELLU rililuIlldzlur lu PTCLUUUI lLc,

Orroctn roni<trn l: rrr <trr rttr rr: intorn: a 6jp66+r+r nnllrvuc)Lv q9r)ru, rq !u )Lr uLLurq ilrrqr rrq E rrPwr LoLo llcllo

figura, permette la iettura di tuttl i suoi bit ma solo i

drre nrrrsionifir,atirri nossono essere scritti, Contiene i

flag che ci informano sullo stato del trasferimento dei

suoi dati.

SSPSIAT: Registro di stato. r^^^ Modo master bus l2C. Frequenza =rvvv Fosc/4*(55pADD+l).

S5PC0N2I Registro ausiliario di controllo.1110

^'

Modo master con 7 bit di indirizzo

Nella figura della pagina precedente e mostrata la

struttura dei registri che gestiscono l'informazione e il

controllo del modulo SSP

Nello schema della figura il registro SSPBUFF contie-ne il dato che deve essere trasmesso, o che deve esse-

re ricevuto. ll SSPSR è un registro di spostamento che

realizza la conversione da serie a parallelo e viceversa.

Quando il SSPSR è stato riempito con gli B bit, trasferi-

sce l'informazione al SSPBUFF e si attiva ilflag SSPIF. Se

si riceve un altro byte in SSPR prima che la CPU abbialetto if SSPBUFF, si attiva il flag di overflow SSPOV che

è il bit 6 di SSPCON. ll regrstro SSPADD contiene l'indi-rizzo dello slave. Quando si utilizzano indirizzi da 10

bit, il byte alto dell'indirizzo contiene idue bit piu signi-

ficatìvi (A9 e AB) e si codrfica con il seguente formato:1-1-1-1-0-49-AB-0.

È il reorstro di controllo nrincinalp npr la nestione del

modulo SSP nel modo l2C. La distribuzione dei suoi bite riportata nella figura

I quattro bit meno significativi di SSPCON, SSPM3 -SSPMO, servono per selezionare il modo di lavoro del

REGISTRO SSPCON

SIruIlurd interna del regrstro di controllo ssPCO,ry

Page 13: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMI'NICAzlIONIImplernenteizione del bus l2C su silicio

REGISTRO SSPSTAT

Struttura tnterna del registro di stato SSPSTAT

Nel modo master il bit SMP vae '1 quando iì con-

trollo dei fronti di salita e di discesa è disabilitato(Standard Speed Mode), e vale 0 quando detto con-

trollo è abilitato (High Speed Mode). CKE seleziona i

livelli delle linee SDA e SCL nel modo master o multi-master.

Al verificarsì della condizione di inizio, si pone a

1 il bit S e quando si rileva la condizione di STOP si

pone a 1 il bit P. ll bit D/A# prende il valore 1 quan-

do il dato ricevuto corrisponde a un'informazione, e

ha valore 0 quando si riceve un indirizzo. R/W#

determina se si tratta di un'operazione di lettura o

dr scrittura. ll bit UA segnala la lunghezza dell'indi-rizzo, se vaìe 1 è da 10 bit, mentre se vale 0 e da

f btî.Infine il bit BF (Buffer pieno) si pone a 1 quando c'è

un dato nel registro SPBUFF.

È un registro di controllo ausiliario, icui bit si possono

lpnnere p srrivere e dono rn Reset orendono tutti il,rY:r!, L

valore O.

I rnmniti eloi hi+ .li qqPanNl? cnnn i conrrpnf i'r!v,,,v,rl

ACKSÍAÎ Quando si pone a I indica se ha ricevuto un bit di riconoscimento

ACK dello slave.

RCEN: Si pone a f per abilitare il master

in modo ricezione.

RSEN: 5i pone a I per ripetere la condizione di Start.

Questo modo di lavoro si attiva scrivendo nel registro

SSPCON il biî SSPEN = 1 . Dopo aver realtzzato questannarrzinno l'rrionto di<nnno di 6 nnzinnì'vPLru4,v, ,(L v,J|Jv"s v' v vHL'v"'.

REGISTRO SSPCON2

Struttura interna del registro ausiliario di controllo SSPCON2.

Page 14: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COflIUN'CAzlIONI

. Generare la condizione di Start.

. Generare la condizione di ripetizione di Start.

. Scrivere su SSPBUFF per iniziare la trasmissione di

un dato o di un indutzzo.. Generare la condizione di Stop.. Configurare il modo l2C in ricezione.. Generare la condizione di riconoscimento ACK.

alla fine della ricezrone di un byte di dati.ll master genera gli impulsi di clock e le condizioni di

Start e di Stop. Quando il master e in trasmissrone il

primo byte indica l'indirizzo dello slave (7 bit più il bitRA//#). Per ogni byte che è stato rìcevuto dal master, si

trasmette un bit di riconoscimento ACK. La sequenza deipassi da realizzare in una trasmissione del master sareb-be la seguente:

a. L'utente genera la condizione di Start, ponendoSEN = 1 nel registro SSPCON.

b. Si pone il bit SSPIF = 1 per terminare la condizio-ne di Start e non iniziarne un'altra orima.

is;*"JsrcÒin2.ò;-: r lI inizio condizione di START i-l-"--"*- sEú-

i :-ks r;i; -i! --i:;;;l-::ì;-:-;+

'SDA

F scritlo con i 7 6il di indirizzodello trosmissione R/W -

BF(SSPSTAT<O>)

lSlliii,," Ji sSpeì-rÈ

l2C su silicio

c. Si carica in SSPBUFF I'induizzo dello slave da tra-smetîere.

d. Si manda in uscita lramite SDA l'indirizzo delloslave.

e. Lo slave genera il bit di riconoscimento ACK. rice-vuto dal master in SSPCON2.

f. Si genera un interrupt alla fine del nono impulsodi clock e SSPIF = 'l

.

g. L'utente carica in SSPBUFF un dato.h. Si trasmette il byte del dato tramite SDA.

i. Si riceve il bit di riconoscimento dello slave.j. Si genera un interrupt nel nono impulso di clock e

si pone SSPIF = 1.

k. Si genera la condizione di Stop ponendo PEN = 1

in SSPCON2.

L Dopo aver completato la condizione di Ston si

genera un interrupt.Nella figura è riportato il cronogramma di una tipica tra-

smissione di un PIC'l6FB7X quando opera in modo master.

ì 'òon..iloto t-.ir" lo ,ouiin"i'-. di servizio del softwore \

per l'interrupt SSP l

SSPBUF è scrillo vio softwore i

: ló"p""i"-1"ùì-";; ;r'.;;;;-l' lsFN :-t:gr::llg 11-1-9 r-r,oldwore

I

Diagramma dei tempi di una trasmissione di un PlCl6FB7X in modo master.

Page 15: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNICAZ;TONII dispositivi l2C

It bus lz0

empre più costruttori di circuiti integrati inse-

riscono nei loro cataloohi comoonenti che

rntegrano dispositivi l2C, il che significa che

questi componenti sono in grado di trasferireinformazioni secondo la normativa del bus

l2C, e possono essere collegati a reti con questo proto-

collo rispondendo agli indtrizzi con cui 5966 <t:ti nrn-

grammati.Con l'obiettivo di collegare al bus 12C diversi dispo-

sitivi uguali, nel caso che uno non sia sufficiente, gli

induizzi d questi componenti non sono totalmentedefiniti in fabbrica, ma gli ultimi bit sono lasciati liberi esono collegati a piedin che devono essere collegati a

terra o al positivo, per prendere valore 0 o 1 . Questo eanche il caso del componente PCFB591, che contieneun convertitore A"/D e uno D/A, e dr cui parleremo.

I'induizzo di 7 bit a cui risponde ha i4 bit piu significa-

tivi già programmati, mentre i 3 meno significativi sono

determinati dall'utente collegando i piedini A0, A1 e 42a massa o al positivo l4 bit più significativi sono 1-0-0-

(rrr)

5CL

5DA

AOAIA2

EXT

VDD

Vss

osc

1, quindi se i 3 piedini menzionati sono collegati a

massa come mostrato nella figura, I'tndirizzo completosarà: '1-0-0-1-0-0-0.

In seguito descriveremo le principali caratteristichedeì PCFB591, che è un componente molto rappresen-

tativo fra queìli fabbricati con l'interfaccia l2C.

Sia questo circuito che il PCFB574A, che è una porta

di l/O digitali, il PCF8583, che è un clock/Calendario +

RAM e il SAA1064, che è un controllore di display a 7segmenti, sono utilizzati nella scheda N/ICRO'PlC TRAI-

NER PLUS, che verra descritta in seguito, e che permet-te l'espansione del sistema di sviluppo MICRO'PlC TRAI-

NER della ditta lngen eria de MicrosistemasPrnnr:m:dnc S I. ,"y,-,

Si tratta di un circuito integrato CMOS a basso consu-mn rhc disnnne di rrn'interfaccia con il bus l2C e ha tre

linee per determinare via hardware uno degli indirizzi

fra gli B possibili a cui rispondere nella rete. Ha quattro

VREF

AGND

AINOAINIAIN2AIN3

Collegando i piedini A0, Al ,

^ 4r - ----- ^ -l ^^-;+;,,^É HZ A n tA))A U At PV)rLtVVrsi possono collocare sino a Bdispositivi PCFB591 nel bus l2Cln ot tP\fa ea<o l'indirizzn

della figura è 1-0-0-0-1-0-0-0.

:@-ffi

Schema a blocchi del dispositivo l2C PCFB591 che contrene un convertitore AID e uno D/A

mffi

fffirffiHllt

ffi@

-ro"$W-'mroffi

Page 16: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

CON'IUN'CAz|ONII dispositivi l2C

iNìt{ìì*s:luùuìutututìittìut]w*r1t:r,rrrr,r,:rril

AINO

A'NI

AOUT

Vrrr

t5,9_

Predinaura del PCFB591 e descrizione dei piedrni

PARTE FISSAPARTE

PROGRAMMABILE

R,'fo rli ínrlirí--n rnrri<nnnrlgpte dl PC|B59î .

ingressi analogici per il convertitore A/D, e un segnale

analogico per il convertitore D/A. ll margine di tensione-^-r^^i-' ^"^ "'"i"^ fra 0 V e la tensione di alimenta-ororugrLo Puv vor rors I

zione. ll PCF8591 si attiva quando riceve tramite rl bus

l2C I'indirizzo a cui è stato programmato. I piedini A0,A1 e 42 determinano via hardware l'indirizzo valido,secondo quanto mostrato nella f igura.

Dopo il byte che contiene I'tnduizzo oi 7 bit e quel-

lo di Lettura/Scrittura (RA//#), il master invia un secon-do hvte dr ror^lrollo rhp si r:rica nel renistro di con-trollo del convertitore. I 4 bit più significativi di questo

byte servono per attivare l'uscita analogica del CD/A e

programmare gìi ingressi del CA/D. I 4 bit meno signifì-cativi selezionano un canale di ingresso, e il numero del

canale si autoincrementerà alla f ine della conversione.

In caso di utilizzo del convertitore D/A, il terzo byte che

invia il master e il valore diqitale che si vuole convertire

,ry\tiuluu!!tau!re:?:::rrrrl!srÍt1Ír!riw:ì!1&$ìrììirìlììtsìd@ruìtl

É.'l:'

.,t:.,@úrt,.jjajaaaaataa:ta\ fi rrrtirtìiiúMFìryrfi rrtullllli''

AIN2

AIN3

AO

N9 PIN

t-45-789IOtlt2t3t4

i]]AGND

EXI

SEGNAIE : DESCRIZIONE

AINO-A|N4 : Ingresso onologico per I'ADCAO-A2 : Linee degli indirizzi hqrdwqreVss : Negotivo dell'olimentozioneSDA : lineo dei doti del bus l2C

SCL : Lineo del clock del bus l2C

OSC I t/O dell'oscillqtoreEXT , Selezione dell'oscillqtoîe2 "O" inlerno; "1" eslerno

AGND , Morro del segnole onologicoVref ' Ingresso dello tensione di riferimento

AI

A2

Vss

Aoutvdd

Uscito onologico del DAC

Positivo dell'olimentozione

MsB LSB

ffi BY'EDlcoN'Ror[o

'rl

l

l

+I

ti'iùiìiió'oii iix,ùr,iiJì 00CANA:-0: OI CANAI. II l0 cANAr2. 11 CANAL3

inè or ruióiùènir'iiùòIo$ivoo"l"Ì

t- .-.. ,,,-.,,. .-..,,-,-..-..... ... .

SEIIZIONE DTI.TIPO DI INGRESSO ANALOGICO

OO OUATIRO INGRESSI INDIPINDTNTIAINO CANALOAINI CANAI. ìAIN2 CANAT 2AIN3 CANAL 3

cAMr.0

CANAI. I

CANAT 2

AINI

AIN2

AIN3

: ì0 DUÈ |NGRESS| INDIPENDENÌ|E UNO DI;IERENZIAI.E

, AtNo- CANAT 0

: 4111- 641141 1

^'r'4 +&-caUnirAlN3---ff

. .I ì DUE INGRESSI DIFFERENZIALI

ArNo--1fu-cnNrLoAlNl ----+ÉP-arN2-----&r

&eììlìÈll!ì>- caNAt IAIN3 ----J#P-

rr-lo or usèrn lln,oocl

ll master invia al PCFB591 un secondo byte di controllo, i cui bitqoverndno le pani fondamenàli dell operaztone

OI TRE INGRESSI INOIPENDENII

Page 17: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

GOMUNIGAZjIONII dispositivi l2G

. -,r*--" - -

ll codice binario del terzo byte che invia il master seleziona una

delle 256 resistenze, ottenendo il segnale analogico equivalente

in tensione analogica. Il convertitore D/A è compostoda un divisore di tensione formato da 256 resìstenze, a-,,: -i ^^^r:-- r- +^^.;^îe di riferimento. Un decodifica_LUI )l dPPILO rú LEr)rVl

tore selezrona uno di questi elementì a seconda del

tVour=VAGND ;ivii ;i;i;i;vÀtó ii.-ilta ;

VourVooVnrr

VlotroVss

00 0t 02 03 04HEX

Grafírn rha rannrè<antÀ l'^ffqnimento r'lol <oonalp-^^/^^r-^ ); ,,--;+- ,^ r.,^-ione del codice binario o esadecimale.attalvgt\u ut u)rtLat ut turtL

codice brnario ricevuto, ottenendo il segnale analogico

equ rvalente.

ll segnale analogico può essere amplificato prima di

essere mandato al piedino Aout, dove verra mantent-

VATOREPRECEDENTECONTENUTONEL REG. DAC

VAI-ORE DEL BYTEIDEt DATO

USCITA

SCL---L5LEI J4Aí'L ru{T'L J]JT|'\' /fA

Vour'-siÀróbr a-r-rÀ rN-DipÉNóÈNzA-

- -'- -

O VATORE PRECEDENTEMENTECONTENUTO NEL REGISTRO DAC

Sequenza della conversione D/A

Page 18: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

coniluNrcAzloNltIitì

Y.

&

'

:G

$.rlls: rll|

.;,ajiaaali..att'\hi11*|#'#&é&'

*--VILA AAT'L XJI|ù' JIJT|'\. JIJ\

,!.._r._--*_..,_* . ,.-" *J.,"icAMPIóNAMÈùTÒl fAMPóNÀMENTdt *_qE-l.qYI_F_?'"_^__,1 ì DEL BYTE,,3 _ ì

CONVERSIONE CONVERSIONE CONVERSIONENFI P,VTF 1 NtrI R.\/Ttr

' NtrI NVTtr'ì

@tM|......................4

TRASMISSIONE TRASMISSIONE TRASMISSIONEBYTE PRECEDENTE DEL BYTF I DEL BYTE 2

4

Sequenza corrispondente ad una conversione A/D

stabile sino alla prossima conversione. ll convertitoreD/A è utilizzato anche nella conversione che realizza il

convertitore A"/D.

ll convertitore contenuto nel PCFB591 ulilizza la tecni-ca delle approssimazioni successive per realizzare la tra-duzione del valore analogico a quello digitale.

Durante uno dei suoi cicli di lavoro, impiega un com-paratore ad alto guadagno, un registro ad approssima-zioni successive, e il convertitore D/A come mostratonella figura che riporta lo schema a blocchi delsuo fun-zronamento.

La tensione analogica di ingresso Ve che si vuoleconvertire a digitale, viene comparata con quella forni-ta dal convertitore D/A e dal comparatore esce 0 o 1 a

seconda del risultato. Questa uscita si applica al registroad approssimazioni successive, e in ogni ciclo si deter-mina il valore di uno degli 8 bit di uscita. Al terminedegli 8 cicli si ottrene il segnale digitale.

ll master inizia Ia CAD inviando l'indirizzo e il bit di

lettura, dopo riceve il riconoscimento ACK da parte del

PCFB591. Quest'ultimo invia il byte della conversioneprecedente prima di campionare nuovamente il canale

selezronato, per realizzare una nuova conversione. Altermine di questa si ottiene il codice a B bit che viene

USCITA DIGITALE

Schema a blocchidel convertitore AlD ad approsstmazioni successiye.

depositato sul registro ADC per la successiva elabora-zione.

Se è stato attivato il bit 2 del registro di controllo(autoincremento), si seleziona il canale successivo auto-maticamente. ll primo byte che trasmette il dispositìvodurante il ciclo di lettura contiene il risultato della con-versione precedente. Se c'è stato un Reset per connes-sione dell'alimentazione, il bvte letto è 80 Hex.

VerB

Page 19: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

Comunicerzione serigle sincroner e eisincronel

RS-232-C

COMUNICAzlIONT

ulilizzo diffuso della comunica-zione seriale inizio con l'adatta-mento di numerose periferiche

tipiche dei PC, dall'umile mou-se sino al piu complesso mo-

dem. A fronte di un così grande quantitati-

vo di dispositivi candidati ad utilizzare que-

sto tipo di trasferimento che accomunava ì

vantaggi della semplicità, economia e sicu-

rezza, furono creati diversi organismi che

cercarono di normalizzare i protocolli per

(r)

poter omologare i prodottì che li utilizzavano. Fra que-

sti ricordiamo negli USA l'ElA, che propose l'interfacciaRS-232-C, considerata uno standard industriale per il

suo impiego nelle porte seriali dei PC. ln Europa il CCTT

propose l'interfaccia V-24 che e identica alla RS-232-C.

Fsistono drre tini di comunicazione seriale: sincronao :<inrrnn: p nlo(t't1l+im: a l: nirr rr-tilizz:+:s oJlllLlullu, L 9urJL urLllllc E lo Plu Utll)LLala.

ASINCRONA: con questo sistema i bit da trasferirein <orio qnnn divi<i in nirrnli n:rrhptti n nrr rnni rhe si

rnrri:nn nrarad, rti d: ,rn <onn:la di inizin o conrriti d:v,r!ruuLl

uno d fine, Ogni gruppo di bit, ir ge'.erale B, e una

^-"^r- Nr^l -.-a ni,, "omnlice ali B hit da fraSfer fe SO_pdruro. I\Er Lo)v P u )L,rrvillu vil u urr vu Lr o

nn nrora|r ti d: rn hrt ni rniz'n l(t:rt\ o 2l lprmina nla-llv PlcLcuuLl uo ulrvrL ur L/ L ur "(lllllllr uc-

nli I hit <i nnno , rn hil di fine l(tnn\ 6f-1p qpnn:l: :n-gil u urL )' pvrrs urr ur. *, ,.,,- , -,_grloro qP-

punto il ter"nine del trasferimento, cosr come rioortatonol nr:firn

qlNIaRONlA rn n1oqtÒ tinn di tr:cfprimo.+n cari: a{n. ,rr 9uL)(W tlPU Ul tlqJlEllll'qlllU rcllO C

l'emettilore invia i byte dei dati in sequenza, uno dietrol'altro sino al ternine l byte dei dati sono preceduti da

Nella comunicazrone sertale astncrona di base, ogni pacchetto di bit deidati deve e,sere preceduto da un bit di lnizio Sldrlre seguito da ttn biL di Fine (SLoal

Nella comunicazione seriale sincrona i byte dei datisi trasferiscono uno di seguito all'altro, preceduti da alcuni bit di sincronizzazione

rrno o due hvte di sincronismo. ll ricevitore deve auto-sincronizzarsi con i bit che rìceve; nella figura riportia-mo il formato generale de Ia comunicazione seriale s n-

crona.

-^*^ -L-L-l--^ ^i: -^LOme a00ramo gra spregato, In questa comunlcazlonennni orr,nnn di ht dpi d:ti dpvp éssere nrereduto e Se-

guito da segnali di sincronizzazìone. Come minimo da-

vanti abbiamo un bit di Start e dìetro uno di Stop

Un parametro fondamentale di tutta la comunica-

zrone e la velocita, che determina il periodo dt tempo in

cui ogni bit permane sulla linea di trasmìssione. L'unità

di misura è il " baud ", che generalmente srgnif ica un bital secordo Nel protocollo RS-232-C, ìa frequenza rn

baud deve avere un valore normalizzato. 330, 600,1200,2400,4800, 9600, 19 200,38.400, ecc.

Ur'altra caratteristica importante d'

un protocollo e ìl numero di bit che con-tiono nnni n,rrrhottn 6' n:ral: nha nlo,,aLrL'rL v:rr 'L L (v v PolUlq, Ll ls UEVE

^-^ r'- - : 9. Anche se nonc))grc LUr lPrE)u I rc J r

À nhhlin:tnrin À mnlln {ronrronta inrlrr-

doro in nnni lr:<forimant^ rn hit r{, n:-"Y,,, .,

rita, dopo i bit dei dat, e prima del bit di(tnn orroctn hit q, 66pnrr ^ .; r;l^\,a ^^rJ r vP. vus)Lv urL Jr ysr lul d E )l I rlEVo Pcl

indicare e conoscere la parita o disparita

del numero di b t a 1 che contiene la pa-

rola rnviata o ricevuta, rispettivamente. E

BYTE BYTE

, svttè:SVNar ln i 2" i 3" t 4' t

:.:..']|.l,...i'i.i:.r:..]'...:''1'---'..!.'.é|]!*:..'ì.:..,...,..,:...'..."..'.-....,1.,..

l* sYrr DI *l- BYTE DEI DATI

slNcRoNtsMo

BIT STOP

I

Page 20: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

Cornuniceizione sericrle sincrond e qsincnonclCOMUNICAziIONI

BIT 2 BIT :Pl PARITII, SrOP i

,:lolllooti8 BIT DEI DATI

ll cronogramma rappresenta il formato R5232-C del trasferimentodi una parola di B bit, che deve esserepreceduta dal bit di Start e seguita dal bitdi aarita e da 2 bit di Stoa

uno strumento molto efficace e molto semplice per sa-

pere se il trasferimento è stato realizzalo normalmenteo si sono verificati errori, che la maggior parte delle vol-te sono provocati da un solo bit che cambia valore,cambiando la parità. Se nella trasmissione si verifica un

errore, cioè un bit cambia valore, cambierà la parità, e

questo fatto sarà rilevato dal bit di parità

Alla fine della trasmissione di una pa-

rola si inviano i bit di Stop. che possono

essere 1, 1.5 o 2 e la cui funzione prin-cipale è determinare iltempo minimo fradue trasferimenti di parole consecutive.

Nella figura si mostra il diagrammatemporale della trasmissione di una pa-

rola di B bit, secondo il protocollo RS-

232-C, il cui codice è 101 1 1001 . ll bit di

parità vale O e indica che la parità dei da-to e dispari, ovvero che ci sono cinquebit a 1 . lnfine abbiamo 2 bit di Stop ad indicare che la che arriva dal microcontroller o dal PC, in seriale per leparola successiva da trasferire deve attendere un mini- periferiche utilizzale, e viceversa. Comunica con il mi-mo di due periodi di clock dopo la fine di quella de- crocontroller o il PC tramite un bus da 8 linee, mentre

scritta. per la comunicazione con le periferiche utilizza la linea

Nella normativa di questo protocollo, sono stabiliti r , o le linee necessarie a seconda del protocollo impiega-range della tensione DCV fra cui devono essere com- to

L'architettura interna dell'USART, mostrata nella fl-^,,"-; !- , blocchi:9UrO s lvirPW)LC UO î

. Sezione trasmtssìone.

Invia, tramite la linea TxD, dati in serie alle periferiche.

Quando la sezione e vuota lo segnala la linea TxE. La

f requenza di lavoro di questa sezione e ricevuta tramitela linea TxC#.

BIT START

nresi i dle staîi looici ll livello alto fra +5 e+15 VDC, e il livello basso fra -5 e -15 VDCper i segnali di uscita. Se i segnali sono di

ingresso i range variano fra + 3 e + 15 VDCper il livello alto e f ra -3 e -15 VDC per il li-vello basso. Dato che questi livelli non sonocompatibili con quelli TTL dei mìcrocontrol-ler e dei microprocessori del PC, sono ne-

cessari circuiti integrati specializzati, comequello mostrato in figura, che ha la sigla

MAX232, che hanno il comprto di adattare

ll circuito integrato MAX 232trasforma i livelli R5232-C in livelli TTL e viceversa

i ìivelli in enlrambi i versi.

Si tratta di un circuito integrato progettato e costruitoda Intel, che, come dice il suo nome, e un Trasmettito-re-Ricevitore Sincrono-Asincrono Universale. La sua

funzione e quella di convertire l'informazione parallela,

. Sezione ricezione:Riceve i dati seriali tramite la linea RxD, e li trasforma in

paralìeli, per inviarli alla CPU mediante il bus dei dati da

B bit. La linea RxRDY avvisa ouando ha ricevuto un da-to, e tramite RxC# si applica la frequenza di lavoro, che

deve essere uguale a quella di trasmissione.

ru ":{'o*' m'-J:-**m

la USART trasforma I'informazione seriale in parallela e viceversa.

LIVELLI RS232-C

vcc

IIVETII TTt

# *'** * ze& a *z# * ** + E * €4 #4' * =4

ae +. * * * * 4 & EÉ # +€ & {É #

Page 21: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

llll connUN.CMloNlComunicazione seriule sincroner e crsincroncr

co roa-,4-aaaaaaaaaaaaaaaaataa)ta:a:4.::aaaataaaaaaaaaa\r\t:.......1::.1............),..4)r*:::arj

USART 825I

TxRDY

RxRDY

RESET

m

CARATTERE

DISPONIBILE

BUs DEI DATI

\8'

TETTURA

crocK

SCRITTURA

coNTROLTO/DATO

SELEZIONE CHIP

PRONTO PER

ACCETTARE DATI

USCITA DATO SERIALETxD

TRASMETTTTOREVUOTO TxE

FREQ. CTOCK TRASM. T_xC

INGRESSO DATI SERIALI - -RxD

FRE QU E N ZA C LOC K RtC EZ. Rx_C

SYNDET

MODEM PRONIODSR

TERMTNALE DEr DAT| PRONTO D-TR

ABITITAZIONE A TRASMETTERE

-cTsPER USART

RICHIESTA DI INVIORT5

DATI

ntltEllú,1tilltdl

UCONTROLLOMODEM

CLK

mc/D

cT

Architettura base dell'USART con le sue principali linee di ingresso e usclta

. Buffer dei dati;

Quando la CPU esegue un'istruzione di uscita dei dati

tOUT), carica un registro fondamentale di questa sezio-ne .rln 8 hit ner nrocedere successivamente ad inviarli

uno a uno alla periferica. Se si esegue un'istruzione di

innrpsso ilNl t a CPI I leanp il rpnistro dpl hrrffpr dove so-nn r,rric,ati r^rl: B hit chp sono arrivat in modo seriale da -

1a perif enca.

. Sezione di controllo.R ceve e invia i segnali dr controllo necessari per sup-portare la corr-nicazione e pe' adallarsi ad un modem,-h^ ^ n Àicnnci+i',n .1^).o d rr:<[nrm:ro d.'i di^if]l;Ll C Í Ul I Ul)pU)lLlVU LqVu!L v .ruJrvr | | rur! ud Ll Ul9ltOll-^-i-r i^ ..J^+. ^^- ^^r^ npr nni -r:smp-'o"li .,r r Una li-ea)trlldll, lllUdLI dlldlU9lLl, pLr Vvr .ruJr rrL..L ,r iU

telefonica.L'USART ha un contenitore a 28 pin per supporta-

re trrtti iseonali neces.--i ^^. -.r-++-.-i r- ,,î latO UnaI JLyrru'r TTLLLJ)Cll PEI ouottOl)l UC Ul

CPU a 8 bit, e dall'altro alle periferiche seriali e al mo-dem.

|: niorlin:tlr: r]al .^mn^nantó À rinnr+r+r nnllrLO PrEUIrOLUrO Uqt lVrrrPVrrqrrLE E rrvvr LqLo rrEilo+i^,,.- - l-+^rvuro o roLU.

D2

D3

RxD :'r::. DO

GND

D4

D5.

'...;:L VCC

Dó,D7

TxC.

wncs

c/DRD

RxRDY ,

. t-,:.-=:.=+.r.a.a+'Z:.a==a:. ..:.=t:.;+a;.1;. ':.;'.ai.:,a;=::|+ j.!:: :r.:t.=:;aa..a-.L1....;.:.-,,a.tt.,:

DI

t;;',':=.1-','

..

I

t-: cTs

SYNDET

rì TxRDY

',4w''Wq.4|1||1,..jj1'@w'Wil;\||||||W,..:..:..':....\|\\|Ny.\.||)\||||1|1:1.:::11ììì11lììiìsffig*f

Page 22: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUilICAZIONIConunicazione serieile sincrono e eisincronc

PAROTA DELrISTRUZIONEMODO (ASTNCRONO)

Comoiti dei bit della aarola "istruzione modo"

bit per parola, esìstenza o meno del bit di parità, nu-

mero di bit di Stop, ecc.

f USART dispone di un solo registro di controllo per

ia programmazione, pero è multifunzione, in modo che

quando siinizializza la configurazione dopo un reset, de-

ve essere scritto due volie consecutivamente. Prima si

scrive un byte che s, chiama "istruzione modo", e dopoun altro che si chiama "istru-

zione comando". Con il pri-

mo sr definiscono le caratteri-

stiche PriP6iPali del funziona-mento dell'USART e con il se-

condo le funzioni ausiliarie,

come illustrato nella figura,che descrive il romnito di

^^^rrn^ |ai hit 5 6ii a' 'nc+au9r rur ru ucr urr q ur vuu)rc

0ue parore.

La cosa interessante di

^llo(l^ rirrttita intonr:tn

chiamato USART è che moltr

modelli dr microprocessori lo

contengono integrato sul si-lirin n ro<-in li rendo:d:iti :ilLrv,9Jq)LV il iqrrus oudlll d

una connessione diretta conf rrfti i tini îli

^arif Fri.L^ -^^LULLr I LrVr ur VLrrrurrlr rq Ll lE

comunicano tramite il proto-

collo RS-232-C.

MODOsrNCRoNo

GENERAZTONE/VERIFICA . I0: PARIDEttA PARITAII: DISP.

ABiljTMONE f I : ABIUTATA

DELL,A PARITA l0: DlSABltlTATA

Questo circuito è programmabile, quindi caricando cor-

rettamente i bit dei registri di controllo, si stabiliscono le

caratlerrstiche del suo f unzionamento, e di conseguen-

za quelle deila comunicazione. Tra le caratteristiche pro-

grammabili ricordiamo: selezione del trasferimento sin-

crono e asincrono, velocità di trasferimento, numero di

"I" PASSA IL 825IAI FORMATODEL[ISTRUZIONE

MODO

"I" IMPOSTA LA TINEA DI

USCITA DTR A "0"

ABITITAZIONE ATLA RICEZIONE

I: ABILITATA

0: DISABIIITATA

PAROLA DELTISTRUZIONE COMANDO

"I " PERMETTE

LA RICERCA DI

CARATTERI SYNC,IN MODO SINCRONO

ABIIJTA/ONE ALLA TRASMISSIONE

l: ABIIITATA0: DlSABltlTATA

,,I'' IMPOSTA RTS = O

IJI{POSIANDO I Sl

EANCEITANOI FLAG PE, OE, FE.

RESET DEI FLAG

"1" FORZA LA LINEA TxD A "0""0" TxD FUNZIONA NORMAIMENTE

eamnìti rlpi hit r'lella narnl4 "1571'Lt7t9ne COmandO"

Page 23: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

RS-232-C

_, lcuni modelli di microcontroller contengo-:.. :r1,

.,, ,,,- no implementati sul silicio diversi tipi di." _;1" porte di comunicazione, tra cui un USARI,t'^ " ). per permettere la comunicazione con il'' ': . protocollo RS-232-C, fra questi il

PIC 16C7X e il PIC 16F87X.

ln riferimento alla famiglia PlC16F87X, abbiamo già

visto che dispone di un moduìo MSSP che supporta dueformatì di comunìcazione sincrona, con il segnale di

clock, in modo SPl, e in modo bus l2C. Inoltre possie-

dono un modulo SCI (Serial Comunication Interface)che contiene un USART capace di lavorare in tre modr

diversi:

1o. Asincrono (Full duplex bidirezionale).

2o. Sincrono Master (Haìf duplex unidirezionale).

3". Sincrono Slave (Half duplex unidirezionale).

(il)

GO tO

Nella figura è riportato lo schema del comportamentodell'USART dei PIC in modo asincrono e sincrono.

Nel primo iì trasferimento si realizza sulle linee Tx eRx, dalle quali escono ed entrano ibit seriali, alla veìo-

cita della frequenza di lavoro. Nel modo sincrono lalinea DT è bìdirezionale, e trasla idati nei due sensi, alla

frequenza degli impuìsi di clock che arrivano dalla lìnea

CK del Master. Queste linee sono implementate sui pie-

dini multifunzione RC7/R)VDT e RC6/TX7CK.

Quando si lavora con il protocollo RS-232-C la paro-

la puo essere di 8 o 9 bit - abitualmente è 8 bit- i quali

sono preceduti dal bit di Start e seguiti dal bit di Stop. I

PlC16FB7X non supportano il bit di parita, quindi se laperiferica da controllare lo richiede, bisognerà crearlovìa software, scrivendolo sul nono bit del dato.

,,, 1'. 1. :r', ; t,. ;',y' r,-l. ii ;. : ;., 1 1;,- 1.; ::

TUSART dei PlC16F87X è composta da 4 bìocchi:

1". Circuito di campionamento: ha rl compito di

campionare i bit che arrivano dalla linea RC7lRVDl, erealizza tre campionamenti per ogni bit, decidendo il

varore a maggroranza.2". Generatore di baud: ha il compito di generare

gli impulsi della frequenza di lavoro.3". Trasmettitore asincrono.

4". Ricevitore asincrono.

IRASMISSIONE

RICEZIONE

MODO SINCRONO

Comnorfdmcnto etei PlCl6FB7X in modo seriale asincronoe sincrono.

o,lnl,r",rrrru ,rlrrrnu ar, rio^idei PlCl6FB7X.

8,.

MASTER sLAVE

Page 24: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

,=

Nella figura è riportata la struttura interna dell'USARL

dove notiamo due registri: quello di spostamento, TSR

e il buffer per la memorizzazione del dato parallelo,

TXREG in trasmissione e RCREG in ricezione.

1.a... :..1í.;.;1;l-i:. ;"- : i., :;: :1 .;; ; t:: ;.. | : - :

I trasferimenti nel protocollo RS-232-C si effettuano ad

una frequenza normalizzata in baud (330, 600, 1.200,2.400, 4.800. 9.600, 19.200, 38.400 ecc.). Questa fre-quenza è prodotta dal generatore di baud BRG, il cui

valore è controllato dalle impostazioni del registro

SPB RG.

La frequenza del generatore di baud dipende dal

valore X caricato nel registro PSBRG, e dal valore del bitBRGH (fXSIA). Se BRGH = 0 si lavora con bassa velo-

cità, e la costante K della formula vale 64.

Quando BRGH = 1 il valore K= 16.

Frequenza in baud = Fosc / K * (X + 1)

X: Valore caricato nel registro SPBRG

K=64seBRGH=0K=16seBRGH=1

t:l ..j'E í+,7;T {:_{} !"4T 2 7,2 &.!} ::4 tî 7 í.3 {} t"!,!i&57.?;èi"#.!3r:+{:

Nella 'figura è riportato il collegamento fra due

PlC16FB7X tramite l'USARI di cui dispongono entrambi.

sotto il orotocollo RS-232-C. Uno dei due funziona come

trasmettitore, e l'altro come ricevitore. ll dato da invrare

tramite I'USART di trasmissione è depositato sul registro

TXREG, e poi è passato al registro di spostamento TSR,

che manda in uscita i bit in modo sequenziale. Inoltreprima di trasmettere i bit dei datr, genera il bit di Start e

alla fine introduce un bit di Stop. L'USART ricevitore rice-

ve questi bit, elimina il bit di Start e quello di Stop, e

quando il registro RSR dispone di tutti i bit della parola la

trasla automaticamente al reqistro buffer RCREG.

Collegamento di due PlCl6FB7Xtramite il loro modulo USART in funzionamento asincrono

w EÈ@FffiriffiÌst ffiffi

BUs DEIa/ ùatl

iffi*Hffiwffi :

":!

i:"

,

T:

ffiffi ,:ffi

Schema a blocchi del trasmettitore asincrono dell'USART.

Struttura interna del registrodi stato del trasmettitore dell'USART del PlCl 6FB7X.

Lo schema a blocchi del trasmettitore asincrono

della figura, mostra gli elementi fondamentali e il com-pito di alcuni bit di controllo del registro di stato del tra-smettrtore.

ll registro di stato del trasmettitore si chiama TXSTA

e possiamo vedere la sua struttura interna nella figurain alto.

ll trasmettitore dispone di un flag TXIF che viene

messo a 1 quando resta vuoto, e in quell'istante si puo

generare un interrupt nel caso che il bit di abilitazione

degli interrupt si pone TXIE = 1. Al momento di scrive-

re un altro dato in TXREG si pone TXIF = 0. Inoltre il bit

I PASSI DA SEGUIRE PER 1A TRASfiIISSIOIIE

ASilICROfrA SO]|O I SEGUEilTT:

î. Configurare la linea RC6|IX/CK come uscita e la linea RC7/RX/DT

come lngres50,

2. lmpostaie SPEN = 1 per attivare I'USART e SYNC = 0 per farlofunzionare in modo asincrono.

Entrambi i bit si trovano nel registro di lato TXSTA,

3. lmpostare TXIE = 1 se si desidera lavorare con gli interrupt.

4. Quando il dato è di 9 bit si imposta il bit TX9D = 1 e il valore

del nono bit si deposita in TX9D del registro TXSTA.

5. Si carica il registro SPBRG con il valore X adatto per lavorare alla

frequenza selezionata.

ConÍollare il bit BRGH per lavorare con la frequenza alta o bassa,

e definire la costante K della formula della frequenza in baud,

6.lmpostare il bit IXEN = I per attivare la trasmissione,

Appena TXREG è vuoto il flag TXlt passa a l,7. Gricare il dato da trasferire in TXREG, TXIF passa a valore 0, e inizia

la trasmissione,

TXSTA

*é'{+ É,é#,Ét"YîF:: +:ttiiu í:=t*'*::++;r +}+;í E+t;èí

Page 25: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

,r,,r,,,,,,,,,r,À,,,,

ÈrClrl

COMUNICAziIONI

'1ìtùil1111,,1,sr-*sir

TRMT del registro TXSTA vale 1 quando il trasmettitoree vuoto. ll bit CSRC definisce nel modo sincrono quan-

do l'USART lavora come Master (1) o come Slave (0).

ll dato ricevuto via seriale dal pin RC7/R)7DT entra nelrpoistro RSR rhp fr rnzi^^- -'J ' '^- {.^^,,^^-l 16 volteI LVrrLrv r\Jr\ !r rL rur r-rvr ro qu ur rq rr EvuEr rz(

superiore a quella di lavoro. Quando si riempie RSR e si

:

riceve il bit di Stop si sposta l'informazione al registroRCREG. ll registro di controllo e di stato del ricevitore si

chiama RCSTA e la sua struttura interna e riportata nella

figura.

Quando il dato ha 9 bit bisogna scrivere RX9 = '1, e

il nono bit si colloca in RX9D del registro RCSTA.

Quando il bit ADDEN = 1 sì rileva l'induizzo e si scarica

il buffer di ricezione quando si attiva RSR. menrre se

,j1:i1iii:.11l:lliltltta.tata:a.|..a......:a-.-...:..:...:,a:aa:aaaa::aaa.:::aattt:ii::ttti*a:

{l GO llììiiìùlrilìì:ììì)ìì:ìììì;ììÈì::ij;:i:ììtì:ì::ulltrlrrurlr' j

RCSTA

Struttura interna del registro RCSTA per il ricevitore asincrono dell'USART.

.iffiM5B

ì ::: : :.. ìì .,.t: .: :. . ) i..)):1 iiiit {:r # !:i: ;rt ruu} l

REGISTRO DI SPOSTAMENTO

iii ,ri! :rlrl: # # il;ì: r;lil (li} rp ìrll! fi; 4 ù:

ABII-ITAZIONE At CARICO

BUFFER RICEVITORE

INTERRUPT

.rg

BUs DEI DATI

Schema a blocchi del ricevitore dell'USART.

w.zg

t:ll:

I,lltl

t5B

-u(ax

-M

*r]

l.3

ffiRC7/RX/D|

.rg

@

w

I

]rffiltll

ìì $ì

[ffi|i:w

wìwwi

?#' za 1..,È'#' éîi:"{ +"iEt i+:;-É + i' :;:t t+ 4.+'í'#t'É'É.

Page 26: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

GOfirUNrcAZlOl{lUn USARÍ crll'interno dei PIG

I PASSI DA SIGUIRE PER RTA1IZZARE UIIA RICEZIOIIE ASIIICROIIA SO]IO I SEGUTIITI:

f. Si crica il registro SPBRG con il valore X adatto a lavorare alla frequenza desiderata.

Dobbiamo anche controllare ilvalore del bit BRGH che determina la costante K.

2, lmpostare SPEN = 'l per attivare I'USART e SYNC = 0 per failo funzionare in modo asincrono,

3. Se vogliamo che si produca un interrupt all'arrivo dell'ultimo bit della parola dobbiamo impostare il bit di abilitazione RCIE = 1.

4. Quando si lavora con parole di 9 bit si imposta RX9 = 1.

l Per rilevare I'indirizzo si lmposta ADDEN = î.

6. Si abilita I'USART in ritezione ton CREN = f ,

7. Terminata la rícezione dí una parola RCIF passa a 1 e si produrrà un interrupt se il bit RCIE = 1.

8. Si legge RCSTA e si verifica se ci sono stati errori.

9. Si leggono gli 8 bit di RCREG per determinare se il dispositivo è stato indirizzato,

f0. Se ci tono stati erori porre CREN = 0.

ll. 5e il dispositivo è stato indirizato dobbiamo pone ADDEN = 0, per permettere la ritezione del dato.

ADDEN = 0 sì ricevono tutti i bit e il nono puo essere

ulilizzalo corne b t di parita Il brt CREN abilita la rice-

zione continua dei dati quando vale 1 e la disabilitaquando vale 0. ll bit SPEN abilita (1) o disabilita (0) la

nort.a spriale SPFN non influisce sL,rl funzionamento in

modo asrncrono.

Quando FERR = 1 indica che e stato prodotto un

-/-- "{

.f

e

r'ì

"o,gf .s s

&-ry "&Ì"3A\ -( r- /lr !ìY

.È-ÈtrD'-Y,'e$o "at e$ù

ADIE RCIE TXIE

ADIF RCIF TXIF

8Ch

0ch

98h TXSIA CSRC

I8h RCSTA SPEN

IAh RCREG

I9h TXREG

99h *sPBRG *

TMRilE 0000 0000 0000 0000

TMRilr 0000 0000 0000 0000

TX9D 0000-0r0 0000-0r0

*RXqD oooo ooox oooo ooox

0000 0000 0000 0000

0000 0000 0000 0000

- 0000 0000 .

0000 0000

PIEI

PIRI

PSPIE

PSPIF

55PtE CCPr rE

ssPrF ccPilF

TXg TXEN SYNC -- BRGH

- RXg

* SREN

U CREN

- ADDEN

-FERR

Regislro di ricezione dell'USART

Registro di trosmissione dell'USART

Registro generotore di boud

errore di trama. Se OERR = 1 significa che è stato pro-

dotto un errore di sovrapposizione.Nello schema a blocchi del ricevitore dell'USART si

nr,o vedere ilfrrnzionarncntn dei hit dpl rea stro RCSTA.Nl-l - +-L-^r,^ ,.i^r - fr^, "^--^ttti "^^istri che sit\ct d Lducrrd ucrro il9uro )vrru roLlvrL, I rc9l

utìlizzano nell'USART dei PIC 16F8lX, con le caratteristi-

che piu rilevanti, e la loro struttura interna.

"*"ó"e$

TMR2IE

TMRzIF

TRMT

* oERR

Principali carattertstiche e struttura interna dei registri che utilizza I'USART nei PlCl6FB7X

,,'|Ji:wiiilUri,rrfiiitrriilrrrrrrrr.]::jtiìtìltwilrlrilirrrrrlrrrrrrlrirrrrrrti\\@S:lììlùÌnùN{*ììWlllll\NiUlUlllrltlWrùì

Page 27: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COTNUN'CAZ;TONII'USARî in modo sincrono

Comuni cazioneseriale sincrona

i sono diversi dispositivi e periferiche chelavorano con iì protocolìo seriale sìncro-no semiduplex, tipo memorie EEPROM

seriali, convertitori AD e DA, ecc. In quesromodo ogni elemento puo lavorare come

master o slave.

lbit sono trasmessi nei due versì tramite la

linea dei dati RC7/RX/DT. ll segnale di clock è sem-pre generato dal master tram te il pin di uscitaRC6/TX/CK, che nel caso dello slave è un piedinodr ingresso.

Quando il master trasmette, la ricezione in esso

rimane inibita, e viceversa.

Ricordate che nella comunicazione sincrona, iltra-sferimento dei dati è continuo, e ogni blocco di infor-

5. CLOCK .r=--ffi

[.--i{!-*4

Nel modo sincrono dell'USARI la frequenzadi trasferimento dell'rnformazrone è generata dal master

A#tr

TXIE

WINTERRUPT

*.ffi,o,

BUS DEI DATI

./g

TX9ffi

TXSTA

Schema a blocchi del trasmettitore dell'USART e struttura interna del reqistro TXSTA.

Page 28: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COII'IUNICAZiIONTin modo sincrono

<ftt tîil trà interna clcl rPoi\lroRCSTA incaricato del controllo della rtcezione dell'USART.

mazione va preceduto da uno o due byte che di solitosono caratteri ASCII SYNC.

Inoltre nel modo sincrono bìsogna programmarel'USART per selezionare i parametri di funzionamento,fra cui la frequenza rn baud e il numero di bit della

oarola. che oossono essere B o 9 ecc.

ll master come trasmettitore utilizza, così come in

modo asincrono, il regìstro TXREG come buffer deid,ati e il T\R romp ronistrn di cnnst:monto ll renictro

TSR riceve il daio dal TXREG, che non si carrca srno a

che non è uscito l'ultimo bit dal TSR. AI termine dellatrasmissione e rimanendo vuoto il TXREG, si puontrntrrartr rrn interrrrnt se il bit di abilitazìone TXIE vale

1, in questo modo la CPU salta alla routine di rnter-

rupt che torna a caricare il registro TXREG, per conti-nuare immediatamente dopo con la trasmissione del

dato in serie.

Nella figura riportata in basso nella pagina prece-

dente, e illustrato lo schema a blocchi del master tra-smettitore, rnsieme alla struttura interna del regrstro

TXSTA, i cui bit controliano e monitorizzano questa

operazrone.Per abilitare la trasmissione si pone TXEN a 1. ll bit

TX9 e a 1 quando le parole sono dr 9 bil, deposrtan-do il nono bit in TX9D. Quando SYNC vale 1 sr sceglieil modo sincrono. ll bit CSRC determina in modo sin-crono quando il f unzionamento è in modo master (1)

o in modo slave (0)

Nei primo caso ia f requenza di lavoro la produce il

Generatore di Baud, in funzione del valore carìcatonel registro SPBRG. Quando il bit TRMT vale '1 il regi-

stro TSR è vuoto. Infine il bit BRGH seleziona il valoredella costante K che interviene nella formula per il cal-colo della frequenza in baud, visto durante lo studiodel modo asincrono.

lpassi da seguire per

dell'USART come master

seg uenti:

"^^li--^"^ l. +"-.-i.,rsqrz4qrE ro LroJrr rrrilOl^l€

in modo sincrono sono i

10. Caricare il registro SPBRG con il valore appropriato di X,

per lavorare alla frequenza scelta,

2o. Porre il bk SYNC a 1 per scegliere il modo lavoro

sincrono,CSRCalper

far lavorare |'USART come master, e il bit SPEN a 1 per

abilitare la porta seriale,

3', Collocare TXIE a 1 se si desidera che si generi

un interrupt

al termine della trasmissione,

4', TXg è 1 quando la parola è di 9 bit.

50, Porre TXEN a 1 per abilitare la trasmissione,

60, Caricare il nono bit della parola in TX9D,

70, Iniziare Ia trasmissione caricando la prima parola nel

registro TXREG,

Per controllare ìa ricezione nel modo master si uti-lizzano i hit dcl renistrs RCSTA.

Quando si lavora con parole di 9 bit dobbiamoporre RX9 a 1 e il nono bit che si riceve si caricasul bit RX9D. Con SPEN a 1si abilita la portaseriale Con SREN a'1 si abilita il master alla rice-zione e con C REN a '1 si permette la rcezronecontinua. Quando FERR è a'l si rileva un errore dì

trama e con OERR che vale'l l'errore rilevato e dr

sovrascrittura.Nella figura in alto a sinìstra si fornisce un quadro

con la struttura interna, induizzi e valori che prendo-no i registri dell'USART in modo sincrono dopo un

Reset.

Per abilitare la ricezione nel master si pone SREN

a 1 | bit entrano in modo seriale tramite il pin

RC7lR)lDT con il fronte dr salrta dell'impulso di clock.

Se solo SREN vale 'l si riceve una parola solamente,ma se e a 1 anche CREN si ricevono parole in modoconsecutivo.

Ogni volta che si riempie RSR, il valore si trasferi-sce al RCREG.

,ll

,rl!ll|'

ln.tt:itNttt....,::.....'...rw41nrrr:.;rfrUtiiiiltUrlÍÍÍtÍji*ì:ììi:1r:.*ffi6*:r**:ìì.

RCSTA

Page 29: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

*cornuNlclzloNlllll f'USnRl in modo sincrono\'""1@*,rrrrrrr,*rrr,ru.,,,,,,,

lpassida seguire nella ricezione sincrona dell'USART

sono i seguenti:

10. Si carica il valore adeguato di X nel registro SPBRG, per

selezionare la frequenza di lavoro,

2', Porre il bit SYNC a 1 per il modo sincrono, SPEN a 1 per

abilitare la porta seriale, CSRC a 1 per far lavorare I'USART

come master,

3', Verificare che: CREN = SREN = 0,

4". Quando si vuole produrre un interrupt al termine della

ricezione si pone RCIE a 1, che è il bit di abilitazione.

50, Lavorando con parole da 9 bit, RX9 deve essere a 1.

5', 5e desideriamo realizzare solo la ricezione di una parola

imposteremo SREN = 1. Quando si vuole realizzare una

ricezione continua di parole imposteremo anche CREN a f.

7'. Al termine della ricezione imposteremo a 1 il flag

RCll, producendo un interrupt se avremo posto RCli a L

8', 5i legge il registro RCSTA e il RXgD se si lavora con 9 bit,

9", Verificare se si è prodotto qualche enore nella ricezione,

testando i[ valore dei flag FERR e 0ERR.

100. 5e si è verificato qualche errore cancellarlo ponendo CREN a 0.

î1". Lettura del registro RCRFG.

.*$' {Ft' 4

sa' èo' es'8Ch PIEI PSPIE

OCh PIRI PSPIF

98h TXSTA CSRC

I8h RCSTA SPEN

IAh RCREG

99h SPBRG

t9h *TXREG u

o$o ó" .$o "*" "*" "*'

ADIE RCIE IXIE SSPIE CCPIIE TMR2IE

ADIF RCIT TXIF SSPIF CCPIIF TMR2IF

TX9 TXEN SYNC -- BRGH TRMT

RX9 SREN . CREN ADDEN 'FERR .OERR

Registro di ricezione dell'USART

Registro generotore di boud

Registro di hosmissione dell'USART

Le due differenze piu importanti dello slave e del masterquando lavorano in comunicazione sincrona sono le

seg uenti:

1'. Lo slave riceve tramite il piedino RC6/T)VCK la fre-quenza degli impulsi del clock che arrivano dal

master.

2". È possibile che lo slave stia lavorando mentre il PIC

si trova in modo Riposo, situazione che si originadono l'eserrrzione di una istruzione SLEEP.

Per lavorare nel modo Riposo si scrivono duen:rnlp nol rooictrn TXRFG e dono si eseoUe l'ìstfu-t/u,v'L

zione SLEEP. Successivamente si trasferisce al registroTSR la prima parola e si trasmette via seriale.

Quando termina la trasmissione della prima parola

TXIF non viene messo a 1 e la seconda parola passa

da TXREG a TSR

Dopodiche si porrà TXIF a 1, e se TXIE era statoimnnct:tn : 1 ci nrndrtrr: ln intorrrtnt ahÉ' -',^^i;^/ìil'rpu)LdLU d | >r I,Jruu-, ,.,,,-r. ,, J )vE9ilEro

il microcontroller dal modo Riposo, mandandolo alla

routine di interrupt che inizia all'indirizzo 0004 H

I nassi da seorrire oer ìa trasmissìone serie srncrona

dplln sl:rio qono iseorrentt.

s

5la\

.o-$* -o*?Ó.oo'.cù- -$o-'a\$-, o .o+elvÈ- .o$1'.F$=

9$ -\F"ù -\ts'Or,'

TMRI|E 00000000 00000000

TMRilF 0000 0000 0000 0000

TX9D 0000 -0r0 0000 -0t0

'RX9D 0000 000x 0000 000x

ooo0 0ooo o0oo 0ooo

oooo oooo 0ooo oooo

- oooo oooo ' oooo oooo

Struttura tnterna, indirizzi e principali caratteristiche dei registri dell'USART che intervengono nel modo sincrono.

Page 30: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

111

I'USARI in modo sincrono

1', Abilítare la porta seriale

impostando SPEN a 1 e il modo sincrono con SYNC a 1,

Per fare in modo che

lavori come slave si pone CSRC a 0.

20, Porre CREN = SREN = 0

3'. Se desideriamo generare un interrupt alla fine della

trasmissione impostiamo TXIE a 1,

4". Se vogliamo trasmettere parole di 9 bitimpostiamo TX9 a 1,

5', La trasmissione si attiva con TXEN a '1,

60, 5e si opera con 9 bit caricheremo il nono in TX9D,

70, Iniziare la trasmissione caricando i dati in TXREG,

Per fare in modo che lo slave funzioni in ricezioneimposteremo CREN a 1. Se rl PIC è rn modo Riposo,

quando si riceve ura parola sul "egistro di spostamento

RSR, al momento di spostarla su RCREG, se erano statiabrlitati gli interrupt con RCIE = '1, si generera l'interrupte il microcontroller uscirà dal modo Riposo.

I passi per fare in modo che uno slave compia un'o-perazione di ricezione sono i seguenti:

l'. Abilitare la porta seriale ponendo SPEN a 1,

Porre in modo sincrono

con SYNC a f e in modo slave con CSRC = 1,

20, Se si desidera generare un interrupt al termine della

ricezione RCIE deve essere a '1.

30. Con parole di I bit RX9 vanà 1.

40. La ricezione si abilita quando RCEN vale L

50. Al termine della ricezione RCIF è uguale a 1 e si genera

un interrupt se CRIE è a 1,

6'. 5i legge il registro RCSTA per conoscere il possibile

nono bit, e se si sono verificati errori nella ricezione.

7". 5i legge il registro RCREG.

80.5e si è verificato qualche errore si cancella il flag

ponendo CREN = 0,

RC7lRX/DT

RCó/TXICK

SCRTTTURA ntl'lT\rhF^ | |

Diagramma dei tempi di una trasmissione sincrona di parole di B bit

Page 31: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

t&

íCOInUNICAZIONI$ Cororteristiche e funzionornenlo del PPI

la sua struttura Inter-

neìla figura.

m

w

Struttura internaa blocchi del PPt e predinalura del componente

rffi ffi---;;;I ' -----+

ryEffirffilv3^.nffilre-l

i

'W m- Íe*.

Com unica zion e parallela

ll trasferimento dell'informazione in modo parallelo è

consigliato per r dispositivi veloci che si trovano fisica-

mente vicini. oer evitare rumori e interferenze.

Schema sempliftcato che riporta tl controllo delle ltnee della^^'+^ 't-"^ ^---//^/' '^^ ^ossiedono alcuni mtcrocontroller PlC.pvt La )tavc pataltcta tt tc P

A parte la rapidità, la trasmissìone parallela ha solo

degli svantaggi; la maggiore quantita di linee di cui

neressita srnnone rn costo maooiorp e il fatto che le,,'"yy,.,,

l nop cr rrrrirri,rnni: il seonale siano così vicine fra di loro

da origine a rumori e a interferenze, dovute anche-il,^r^,,-+- {-^^, ,^^-- .li f unzionamento.cI EtEvoLc IqvuErrzo u

Nei microcontroller PIC troviamo alcuni modelli che

dispongono di una porta parallela slave implementatasul silicio Si tratta dei modelli di PIC che dispongono di

cinque porte di l/O e che ne dedicano due a supporta-re questo tipo di comunicazione. La porta D suoporta

le B linee incaricate dei trasferimento dell'informazionee la porta E le 3linee di controllo necessarie. lsegnalidi controllo necessari sono RD# (lettura), WR# (scrittu-

ra) e CS# (selezione del chìp).

Ogni linea del bus dei dati del microcontroller

comunica con un pin esterno tramite due flip-flop tipoD, uno per la lettura e uno per la scrittura. lsegnali di

rontrnlln nermettnno il funzionamento di gp +lin-flnnvL,,,,LLrvl

alla volta, come mostrato nella figura.

Per faciritare ;l collegamento dei sistemi basati su micro-nrocessore con le nertr^'t't'^ ^-'-rr^r^ -^^r stati svi-r- _. ilcrLrc Pdroilcrc, )urL

luppati una serie di circuiti integrati specifici, uno dei

piu conosciutL e utilizzati è il PPI 8255, prodotto da

Intel.F stato nrnnettato nor nrn.oqq^ri ron il hrts dei datiy, vyL LLq Lv

da B bit ner cur trasferisce nformazioni su B linee. ll PPI

e composto da tre porte da B ìinee cadauna, e che si

chiamano PA (porta A), PB (porta g) e PC (porta C); è

programmabile e il suo funzionamento si controlla

mediante i bit che si scrivono sul registro di controllo.

ll PPI ha un contenitore da 40 pin,^- ^ l- ^i^!i^-+,na e la preornarura sono moslraÎe

l::G*-iix

t\|w',tg' jai||$1$rf sf tÌÌ[ùùtfrstu0ir]rrr,,rrrr:/l

Page 32: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUN'CAziIONIGcrrcrlleristiche e funzionqrnento del PPI

v

rd

&

l[#

é-.,;tli'

ll PPI si collega da una parte con le periferiche esterne e dall'altra con la CPU

L'interno del PPI e composto fon-. -l--^^+-l-^^+^.J-udr rcr rLdrrrcr rLc ud qUattro registri da

B bit Tre di questi corrispondono con

, idati che entrano ed escono dalleporte A, B e C, mentre il quarto e il

reoistro cli controllo RC.

I netta figura è riportato il collega-mento del PPI oa un lato con le peri-

feriche esterne, e dall'altro con la CPU

: con cui comunica tramite le otto linee

: del bus dei dati e con le linee di con-

i trollo RD# (lettura), WR# (scrittura) e

CS# rselezione del chip). Quest'ultimospnnalp qtrr\/o npr fare in modo che il

: PPI funzioni quando, tramite il bus

degli indirizzi, arrrva quello che corri-soonde al PPI stesscr

Ognuna delle porte e compostada otto linee bidirezionali che ricevo-no il nome di PAO-PA7, PBO-PB7 e

PCO-PC7. La porta C di solito lavora in

due sezioni, PCH e PCL, ognuna di

quattro linee. Le linee D0-D7 mettonoin comunicazione il bus dei dati della

CPU con i quattro registri del PPl, e le

sue informazioni si scrivono o si cari-cano su una deìle porte, selezionatacon le iinee diindrizzo 41 e A0. Se A1

= O e A0 = O si accede alla porta A; se

A0 = I e A1 = 0 si accede alla porta B;

se A1 ='1 e A0 = O si accede alla porta

C e se 41 = A0 = 1 si accede al regi-stro di controllo RC

Scrivendo nel reoisîro di controllo si

può programmare il PPI in modo dina-mico cioe si nrro modificare il funzio-namento del PPI durante l'esecuzionedi un programma, in qualsiasi momen-to I a scriîîrrra del reoistro di controlloe programmazione del PPI permette di

realizzare d ue azion i fondamental i,

1") Se il bit più significativo di RC si

imposta a '1, i 'estanti bit di questo

registro determinano il modo di lavorodelie tre norte Fsistono tre modi di

lavoro: Modo 0. Modo 1 e Modo 2 e

PCt INGRESSO

0 PCt USCITA

PA INGRESSO

0 PA USCITA

I PCH INGRESSC

0 PCH USCITA

Quando il bit piiL significativo di RC

si carica con un 1, i restanti bit determtnano il modo lavoro delle tre porte

CANCELLA O ATTIVA UN0BIT DI PC

SETEZIONE DEt BIT DI PC

0 0 0 BIT O

I BIT I0 I 0 BIT 2

I I t Bfi7

Quando il bit più significativo di RC si carica con uno 0,

i imanenti determinano per quale delle linee della porta C esce un bit 1 o 0

MODO DI TAVOROGRUPPO A (PA+P€Hì

MODO O 0 0

MODO I 0

MODO 2 X 0 MoDo 2

i

Page 33: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

gcolnuNrcAztoNlff Gororteristiche e funzionernento del'li1r

PPI

le porte possono funzionare comeinnraq<n o rnmo rr(rit:

2") Se si carica uno 0 nel bit piu

cinnifiretivo di RC ihit rimanenti<or\/nnn nor indir:ro npr nrr:lorL,vv, ,v vrl

dpllo ìinpo doll: norte C esce un,Lr vr,,u vv, Lu

l--i+ i*^^-+-+^ - 1 ^^^,,"^ - nulL ilrpu)LdLU o I uPvurE o w,

cnme si nrro vedere dall'ultimafigura della pagina precedente.

ll PPI ammette tre modì di funzio-nàmento delle sre norte. ll Modo0, il Modo 1 e il Modo 2. ll mododi lavoro selezionato dipende dallenoriforirho r-ho dovo nrlnt:roF<i<tnnn noriforirho passrve, o"non intelligenti", che non neces-

sitano di segnali di dialogo, ad

Diagramma dei collegamentidel PPI quando funztona in Modo 0, senza segnali di dialogo

RC

EEEEEEET

tDAto DtSPONtBt[r)

INTRB

esempio un insieme di otto diodi LED; altri dispositivi,

definiti "intelligenti" necessitano di segnali di dialogoper realizzare itrasferimenti, qualcosa come segnali del

tino "adpsso ti m:ndo un dato" e "il dato e Stato rice-

vuto". Di seguito descriveremo il comportamento di

ognuno dei modi di lavoro:

Modo 0E rl piu semplrce di lutti, dato chennn no<ti<ro <onn:li r{i di:lnnn,iv,, YTJL,JTL

con le neriferiche che si conside-

rano "non inteìligenti". Ad esem-

pio, una periferica nor intelligentedi rnnrpsso e rrn insieme di B inter-ruttori, e se è di uscita un insieme

di 8 diodi LED.

Dobbiamo programmare

^nn1n: dollo tro 66pfa nar f:rl:v9rrurru uLilL LrL pvrLq PEr lOllO

lavorare come Ingresso o come, ,--,+ î - - "1,,^^ A^ ^A ^.uSctla, scrven0o aoegualamenler bit di RC In questo modo pos-

sono lavorare tutte le porte PA,

PB, PCH e PCL. Nella figura e

rinnr+r+n l^..ham: dr rnllon:-llpul Lolu lu )Lllqllro ur LvilLvu

rnento del PPI nel Modo 0.

Modo 1

ll trasferimento di informazione e

-^^+.^ll-,^,l-i -^^^-li,li,li.l^^^LUILrUrrOtU UOr )q9rqil Ur UrCrV9V

fra il PPl, le periferiche e la CPU. Possono solo lavora-

re in questo modo le porte A e B dato che la porta C

fornisce le sue lrnee per supportare i segnali di dialogoche sono necessarì Quando si utilizza una periferica di;^^"^..^ ^ .t -^"'.^ ' '^- ^^.+î ^r-+^ Si attiva ilil tvtc))ur c )r LdrLo uro Pwt Lo Lwr I ut I uqrv,

segnale STB# allora il PPI attiva automaticamente un

segnale chiamato IBF (Buffer di Ingresso Pieno) per

avvisare la CPU che c'è un dato da leqqere.

IBFA

Srhema deì collegamentt del PPI quando lavora ,n Modo I con due periferiche di inqresso.

Page 34: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

funzioneirnenlo del PPI

con la ne.ifprira Nlel N/odo 1 laporta A e la porta B potevano

funzionare solo con'e ingressi,aì rnma rrqrite o nor rr_, Jgnt caso

avevano bisogno di tre linee di

controllo, contando anchequella di nterrupt.

Nel Modo 2 la porta A puo

lavorare in modo bidirezionale

^À ^ci^ò q lin^^ À, .Ii.1666 661CU tr)lgc J ll lfc Ul Uldrvyv, pLl

cui alla porta B rimangono a

disnosizione solo 3linee liberesulla porta C, rimanendo limita-ta a lavorare in Modo 1 .

Quando PA funziona in

\,,1odo 2 come ingresso, utilizzai segnali IBF# e STB#, mentre se

f unziona come uscita uliltzzaOBF# e ACK# Inoltre necessita

delia linea INTR per la possibile

richiesta di interrupt alla CPU.

Se la npriferir,a introlgce Un

dato in PA si attiva STB# e IBF#

si pone a 1 automaticamente, in modo che quando laCPU legge il dato sr disattiva lBF. Se la CPU scrive un

dato in PA si attiva OBF# e quando la periferica racco-

olie ouesto dato attiva ACK# e si disattiva OBF#

EEEEEIIIIIPBMODOI J I:

=iElt-ó_"0:8.é---0,*:*--iPsiiGnEreìi"1*e:úsín--l-ql-lPC2-PCO |NGRESSOÌ l:jt9?:?_9o_u..-s!_!I-4_.-r9:

TNTRA{-

CollegamenÙ della CPU a due periferiche di uscita tramite tl PPI tavorando in Modo 1

Inoltre in ntteslo modo si nro nrovocare unarirhiesta di in-prrrnt alla CPU mediante il senn,ale

INTR, per fare in modo che ii segnale sia letto imme-diatamente. Nella figura si mostra lo schema dei col-lonemcnti del PPI in Modo 1

rnn drro noriforirho diLUr' vuL pLrrLrrLrrL ur IngfeSSO

sulleporteAeB Rc

C)randn lc neriferiche sonoYss,,vv

^li ,,.-;+- i .^^^-li ..Ji ,.li-l^^^ur u)LrLo, | )E9f rdil ur uroru9u

sono dìfferenti, anche se sonoscmnre nestiti d;ìll,ì norta C. lnquesto caso uno dei segnali si

chiama OBF#, e il PPI lo attiva:r.tomatiramentc nrrandO laaPl I (rriyp rrn d:tn 666 l: nnrl-r

|'JLi lo Pwl tc

A o B l'alîro sennale si chiamaACK# e lo a1 liva la neriferica dir rcrit: n1:ndn lonne lr nnr+ruJLrLo Yuor ruw rEvyq ld l.iul Ld,

l'nnor;zrnno a^m^^rt) l: rlic:-I vvqr qzrvrrE lvr rvvt Lq to ut)o-

bilitazione automatica di OBF#.

Modo 2

In questo modo lavoro puo solo{, ,^-i^^ -"^ r- ^^.+- A Che etut t4tvt totE to PUt Lo /

-,,^^^/+î+a ,l- -i^^ ,^ li^^^ ,l^,1-)uPPUr Ld Ld Ud Lil rr-.luc f il rcc uuild

nnrt: f- nor ne<tiro il ,.Ji-l^^^PUr Lo ! Psr vq)u q il uldlugu

or-7

Schema dei collegamenti fra la CPU e una periferica di tngresso/uscita tramite ìl PPI in Modo 2

Page 35: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUN'CAziTONIAltre regole dellc comuniccrzione seriqle

Comunicazioneparallela

La comunicazione dei dati in serie secondo la normati-va RS-232-C fu rntrodotta nel 1962, e permette il tra-sferimento dei dati fra un trasmettitore e un ricevitore.

Sin dai primi anni '90, la maggior parte dei personal

computer o PC, e anche computer di categorie diverse,

comprendevano almeno una porta seriale con interfac-cia R5-232-C, secondo le norme dell'ElA dell'anno1969. Anche se questo standard è ancora abbastanza

diffuso, ha una serìe di limitazioni che impediscono la-'.- -^^ri---;^^^ i^ -rlti camni fra esse ricordiamo:)Ud dpfillLdZIUlltr lll lllUrt, Lul

1u. La velocità massima è limitata a 20 Kbits/s, il che

ne impedisce l'uso nelle applicazioni dove sia necessa-

rio trasferire grandi quantità di dati.

2". La distanza massima fra l'emettitore ed il ricevi-

tore è di 15 metri.

3u, Nel trasferimento possono essere coinvolti solo

un trasmettitore e un ricevitore.

4". ll rumore e le interferenze elettromaqnetiche in-

t t^- t:^:-- --A^A , . ^^ ^^.+^ . ^,; -l^ A^l Davt to Ltl)ltd )( / /cud LUr / IJUI Ld )f/ /dr- uí r \

fluenzano molto questo tipo di trasferimento, e il moti-vo orincioale risiede nel fatto che si utilizza il "modo co-

mune", che consiste nell'invìare segnali il cui valore ha

come riferimento la massa. quindi costantemente in-

fluenzati da disturbi.

Le restrizioni della comunicazione RS-232-C hanno da-

to luogo allo sviluppo di nuove norme, destinate a co-

prire aree specifiche. Così ad esempio l'ultima revisione

della norma RS-232-C, chiamata EIA-232-F, permette la

comunicazione fra due elementi ad una distanza di 1 5

metri con una veìocìtà massima di 19,2 KbiVs.

Nella norma EIA-423-B l'emettitore lavora in modo

comune, pero il ricevitore lo fa in modo differenziale, che

praticamente annulla gli effetti dovuti al rumore e alle in-

terferenze ll modo differenziale verrà spiegato più avan-

ti, pero fondamentalmente e basato sulla trasmissione di

sennaìi r^omp niffprenz: di drrp tonsioni al nosto di una

tensione rispetto a massa. Nel modo differenziale si uti-

lizzano due cavi twistati, quindi ogni

segnale ha bisogno di due conduttori.Ir lrvclln Inn'ro :lto e hasso dei bit dei

dati, e determinato dalla differenza di

potenzia e fra i due conduttori, e non

da quello di una linea rispetto a mas-

sa. Nella norma EIA-423-B e previsto

un solo trasmettitore, ma sono possi-

bili drversi ricevitori differenziaìi. La di-.+an?r mî..ima ^,,À arrivare a 1200)LOt t4O I ro))il tO PUW O

metri con una velocità di 1 KbiVs. Se

-i ^r^.,- r- {-^^, ^^-- .li trasmissione)t cruvo ro r EvuEr r4o L

diminuisce la distanza, così quando si

trasferisce informazione a 100 KbiVs

la distanza massima è ridotta a 12

metri. Esistono anche aìtre norme, co-

me la EIA-561, 562, 694 e 723, però

le più importanti probabilmente sono

la RS-422 e la RS-485, che saranno

descritte in modo più approfondito.

Page 36: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUN)CAZ;TONI

OV:::

SEGNATE CONDISTURBO

SULIA TIN:A

SEGNATE CONDISTURBO

SUUATTRA TINEA

L'obiettivo di una buona norma

^ +rtcÍar'rra.l.+i . +"^^,,^^,- ^l^c Ll d)lcrJrc udLr d ||cLluc||Ló etc-

vata fra punti molto distanti. Inambiente industriale con alti li-velli di rumore e interferenze, e

dirf icile far convivere i due para-matri nrinrin:li. fronr,^h-r ^ ^irrrL rr I vr il rlrvoil. ttcguE|4o c ut-stanza. Dato che la normativaR5-232-C non raggiunge questoobiettivo sono state sviluppatenorme che utilizzano il mododifferenziale invece del modocomune.

Nel modo comune, i livelli logi-ri alto e hasso che r,rnoresentano i,- ,"Y|

bit dei dati e di comando, sonodeterminati dalta tensrone esisten-îe srrlla linea risnetto alla massa

comune. Nel modo differenziale, i

segnali non circolano su un cavo

solo ma su due, e i livelli logici so-

no determinati dal'a differenza di

tensione fra essi. Dato che il ru-more influenza in modo uguale ledrro linoo l: nlifforonz: {"- ^--^ t^,, ,-J il d e>>e tu

annulla e lo elimina, come si puottorloro d:ll: f inrrr:

La comunicazione in modo dif-ferenziale di un trasmettitore e dirrn rirOri lnrp O r:nnro<^n+r+a ^.aL L iuvprLrqlrLoLo Vld-

ficamente con la simbologia im-nlomont:i: noll: f inr rrr ll cnnn rPrsr r rqr rLo.o r rqilo r 9 u r o. ll )c9l ld-

le da inviare e il segnale ricevu'topossono essere di livello TTL, do-po i due dispositivi trasmettono e

ricevono nresta informazione in

modo differenziale tramite i duer:vi A e R rhe nrondqpl6 il nome,.li -^^^;- +,^,i-+-+-ur LUPVTO LVVr)LOLd.

I segnali sui due cavi cel mododifferenziale sono invertiti (notate

i cerchietti) e la sottrazione fra lo-ro non solo azzera il rumore e lejnterferenze, ma raddoppia il li-

vello del segnale risultante, come<i nrrn riodoro nrrfir:mnn+n nnllr)r Puu vcucrq 9roILoItEILg ttEilofinrrr:

La differenza di potenziale fra le due ltnee eltmtna le interferenze

SEGNALEDA INVIARE

SEGNALERICEVUTO

Collegamento di un trasmettitore e di un ricevitore in modo differenziale

VASEGNALE

TRASMESSO. -

VB

SEGNALETRASMESSO

VA-VBSEGNATE

RICEVUTO

ll segnale lrasmes-so sui due cavi vtene sottratto per ottenere ìl segnale rìcevulo senza rumore

Ahre regole dellcl comunic.tzione serieile

+6v iìIl

+2Vìj

.)

,-*-óy-:

:

i+2Y i

COPPIA

.*'!r:::]::*tÍ1r1111l1irlÍrììÌììì:ììùìììììììììlilldR&!]lli]!]!]!ffiss::ì:ì:flllsÌùù|iiìì!ììu

Page 37: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COmUNIC;AZIONlAltre regole deller comuniceizione seriale

SEGNATEDA INVIARE

Collegamento fra due dispositivi che utilizzano la norma RS-422.

Un collegamento secondo la norma RS-422 necessita di

cinorre linee o cavi due ner trasmettere l'informazionein modo differenziale, altri due per riceverla nello stes-

so modo e l'rrlîima ner la massa comune. La tensione

di ogni cavo in modo comune può essere compresa fra+7 V e -7 V risnetto a massa.

tere con un solo dispositivoìn ascolto.

À/-^^i^-^ À l- li-+-vlaggrore e la 0rsîanza-t ^ -^^--- l,^*^++i+^cne Separa I emerrTore e

il ricevitore, minore sara

la velocita di trasferimen-to. A 1200 metri la velo-cità massima è di 100

KbiVs, a 120 metri è di 1

MHz/s e a 12 metri puoarrivare a 10 MbiVs. Conl'ohietîivo di noler colle-gare f ra loro vari dispositi-vi in rete, è necessario chela sezione di trasmissionedi ogni dispositivo sia ad-l+- i*^^-J^^-- ^,,-ndOdlrd llrlpcucr tLot 9uo

non e in funzione. In que-

sto modo si puo trasmet-e averne un rnsieme di 10

E molto simile alla RS-422, di seguito riportiamo alcu-

ne fra le orincioali differenze:

1". Nella stessa rete oossono funzionare srno a 32 si-

stem i emettitore/ricevitore.2" ll maroine di tensione

in modo comune puo an-

dare da +12 Y a -7 V.

3u. Se si cortocircuitano i

due cavi twistati A e B, o-^ -i -^^ti-- +.^ ^--ise sr appilca rra essr una+^^-i^^^ +-- ,11 ,, ^ 7 V,LCtt)tuttc ild îtz v E -

la corrente massima che-1.-^t- -^.\ t^[^.1^-^ ^ 250L[ LUtd )Otd il il ct tutc o

mA ner evitare che si dan-

neggino.4u. ll trasmettrtore e il ri-

cevitore, nella normativaRS-485, dispongono di un

segnale di ENABLE che

abilita o disabilita ilfunzio-n:mAntn In nrroctn mgl6i dispositivi che non stanno

emettendo, o ricevendo,possono essere scollegatidalla rete.

5u l'imnedenza minimadi innresso deve essere SU-

periore a 10,56 KQ.

SEGNALERICEVUTO

Colleoamento di vari disaositivi RS-485 in rete

Page 38: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNICAZ;IONIAltre regole deller comuniceizione serierle

:lttt

l$

ìsiìlll!itt*illtit;u:urrar*r*lrr,*a*lu${

PARAMETRO

Mossimo distonzo (metri!

Mossimo velocifù {Kbit/s)Modo di funzionomento

Numero emeltitori/ricevitoriMossimo lensione di uscito

Sensibililò di ingresso del ricevitore

Resislenzq di ingresso del ricevitore

RS-232*C

t520

COMUNE

r/rt25Vr3v

3k-7k

RS-422 ì

I.200 |

to.ooo ,

DIFFERENZIATE .

| llo ,,

-O,25V +óV .

!2OOmV .

4k mín t

RS-485

t.200ro.ooo

DIFFERENZIAIE

r/32-7 +l2Y

!2OOmVl2k min

Principali specifiche delle norme RS-232, RS-422 e RS-485

Po che la distanza che permette questa rete puo supe-rare il chilometro, è molto adatta alle installazioni indu-striali per la raccolta dei dati e l'attivazione di differentiattuatori.

Se non si utilizzano ripetitori intermedi si possono

collegare sino a 32 unita di carico, condue resistenza di terminazione da 120 A.

Questo suppone che ogni emettitore RS-

485 debba fornire una corrente di 57 mA,cosi le 32 unita di carico insieme alle re-

sistenze di terminazione consumano 1

mA onnrna |'imnedpnza massima di in-gresso sara superiore a 10,56 Kf2, in mo-

do che applicando all'ingresso una ten-sione di 12 V, la corrente non sia supe-riore a 'l mA.

Quando l'ambiente è molto ostile, si

raccomanda di utilizzare del cavo scher-mato, con la calza collegata a terra da

uno degli elementi della rete.

ll numero di dispositivi RS-485 nellarete si nuo àrrmpntarp in modo conside-revole con I'ulilizzo di ripetitori e ricevito-

Analog Devices. Si tratta di un circuito integrato a B pie-

dini che permette dr soddisfare le norme RS-485 e RS-

L)) o l: rr ri niodin:f 1 1;.r À rinnr+:+r nnllr {in"r: rinrndnt--.-, r,.--,,.-.*,d C llPUl toLO Ilclro llVUlu rrVrvuvL

ta qur sotto.L'ADM1485 è un trasmettitore/ricevitore in modo

difforonzi:lc nrnntrttato npr l':rronni.emonto alle nof-v!'IuLLv|/v

ENABLE

ENABLE

Vcc

B

A

.,..1 -l+- i-^^,.i^^--I ou otLo il |PguEt t4o.

Nella tabella in alto si pone indif'erenza fra i diversi parametri

RS-422 e RS-485.

Piedinatura del circuito integrato ADM14B5

rilievo la

delle norme RS-232,

Dato il diffuso ulilizzo di dispositivi accoppiati allo stan-dard RS-485, i costruttori di circuit, integrati, dispongonodi una linea di prodotti destinati a risolvere l'adattamen-to dei segnali TTUCN/OS a questa normativa, e uno dei

componenti piu rappresentativi è il modello ADN/ 1485 di

me RS-485 e RS-422. Ognuna delle sue sezioni si puo

abilitare in modo indipendente con il segnale ENABLE.| -,,^"- .-^^^ ri tensiono rnmnrpqo f ra +1 2 V eLOVVTO LVI I Ur I lqllVE Ur LCr rjrvr rs LUr rrPrq)v rl

-7 V Permette velocita di trasferimento che arrivano si-

no a 30 MbiVs, e si alimenta con una tensione unica da

+5 VDC. ll tempo di propagazione del trasmettitore è di'10 ns e quello del ricevitore di 25 ns Permette la con-nessione diretta di 32 dispositivi in rete, anche se e pos-

sibile att;vare un solo trasmettrtore per volta.

Page 39: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

F

$COÍNUN]CAZIONIlnternel

Indi rizzi utili di Internet

f Ìii: /lvwv,,l.cs ,ri"i r lcqr-trinlíac\ùa s ila iqaÌe.oigiccri[r/ccinp rcbct'cs.']t sc

iiil ilr.v marigaie orqisli/sct.eleiìfof cs Das cs

iiitl./iir'i,.'r,', fcrri. i'-"c.aà1:aRR/afci'ri,esll99-c/aiiìÌ'ci.tiri

irttn',rtp rrnu.ectr tr'^lDlclireliai cl/fa,;i'C0\lP-Al'iSWlRSr

riiil.liiii,,,,,.ri' cs u,r n ric g -b'iii: cì ua i s

:'1ip./,.,,'r l'r.'i,V ledey;.'1pr;/lO:'OS:

.è 1 :-i:..'I1-". .'

litp /ib*e. re be. k'l 2. wr;. u:/'J:v,scre:'l ecl9B. h tm ì

Prnno-tri rnn Ionn .l:ll, l\4îrchal' IIn vnrci+',I ru9ELLr !Vrr LE9u uo'rd lvldl)l loll ullìvEl)lLy.

t,&À-r' J_ld ses. rtu,f,ù jd""G "f ,:-i - l iEfr *d : I r:q i,k i*.{: r,..1*.ì lbs n"'

Ft ": 1::t"lt ?""-'"* :'

llavi-r Creeh Èl+*lr*tîrT i -::, . Prujetts 199S99-.;ù *::#

-:i;* :--*

si$d.r!ùJNFd.!{€Jau àni.;.. ,!útÍtNlùrín'r'g?5.espù3!n*tuùjJ:!úrúd!ds*!!ir.drìraùftlEjrG dós È ù Énì: nÉ nsne,r. oilts. i-ì!nú !.adt i! IàEliì fd!^irJ ilaù ftùÈr \ir. ILn ,îtll E. ali, bt d'! nèlp nl 1 Ias4

ij!ùasrl \I&J P.?d,q4ù ùrú. i! rùùs, ie;il! '\É @ ùlSd{ ro $d;rÈ 51.ù tnr'r5. rG&rff Aúiùúr! fr' !ì?1d r!! L.!ùì& i lJsi*r rú !irnÈ1rr:r $r ìnt I tÉ! Ji! \il l*d rii* r9È lebtDiijj_# *:::* t:::.* r:'*

lll-1!-L-c'rnita-:-e:t-l=irli!in!lÉ./€iiLr::i-c:il!ri:ilt.:i r':=vi.tril-rProgettr dj microrobot dell'Università di Berkeley

Progetto di intelligenza artrficiale dell'Universita di

C h icago

-ì i: :1,",.,'!i. r, .--:..!1.:r i-,,,:::

Progetti per iÌ PlC.

blrp/ri',erlkee.respana -Piog hinr

Sezione rn cui si pubblicano informazioni relative alla pro-

grammazione di microcontroller, oltre a varie utility ed

esempi di programmazione. In questo momento possia-

mo trovare un manuale di JAL (.Just Another Language),

un linguaggio di programmazione di alto ìivello per i

microcontroller PIC che assomiglia molto al Pascal.

n it p ://,mr,lru a l-r.vr l i i a rn s. co mr'wii 5 g n r/sta rc pf a q htrii:,:I,l.i,t.,r'r,ij..,].!::iì.i-..:È1.ìai:5€.rr::-.,-ì:'i^;ii::l jtltS,tl:AS:f _.ti ì-,- :, -ì

Pagine in cui si possono trovare manuali, e risposte alle

domande piu frequenti (FAQ) sui moduli Basic Stamp,

basati sui microcontroller PIC e molto utilizzati nella

costruzione di microrobot.

iirJrlvirir.v;in-cu-llll-954heinll| !nèa!Universidad Politecnica de Madrid.

.i. :!nii!!rL,!.11'

F&.---.+-

*foÉ.-

t:Ll. ,,

trTTB#

r-;ji;:'', . ;';i;".;r-,:-:'Ki'fs per la costruzrone di robot, dal

secondario al lìvello universitario.

-r=Ì-.ir.'

livello scolastrco

Page 40: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNICAZiIONI

httn //il tr,rtnr 16h6l;rq r6Tn

Kits di robot, notizie, documenti.

http://robolikrtsd irect. corr/rndex. htm I

Kits di robot.

htip l/www. i robot.com/home/Sistemi robotici reali.

http //www.joker-robotics corn/

hilp.//wwrr;. lynxm otion. com/Kits di robot e braccia robotiche.

hiip.íwrnriv. m r crobotica. es/iower. hinrhtÌp.//www. m icrobotica es/f lota htm

Schede e microrobot comoleti basati srrl 68hc'l 1 diMotorola.

http./1rr,;vr."rrr sia i n 0se n c iase cc inlProdotti di robotica, manuali ecc basati sul Basic

Stamp di Parallax.

htip://www.screncekrts. comirobots htmKits di robot per differenti livelli.

hitp ://rvwv;. robotstore. comOfferta di numerosi kit per differenti livelli di conoscen-za su hardware, elettronica e programmazione.Possiamo trovare da microrobot con gambe, ali e brac-cia mobili, sino a robot con telecamere di visione o fun-zionanti a pannelli solari. Inoltre sono in vendita kit sin-goli, come ad esempio il sonar, adatti ad essere monta-ti su diversi m,crorobot.

hiip./www. rciloÌ--|ectran ics cc. u klSvariati modelli di moduli: ad ultrasuoni, scrittori di PIC,

ecc. Componenti: servomotori, sensori, ecc.

[t.q#wwv', ? qpllI_$/clalGruppo di robotica di Mataro. EUPN/t.

, .,i./l . .. . '. Lr.i _. Oul !Pagina di un gruppo con diverse cose e links.

Page 41: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COTI'IUN)CAZiIONIlnlernel

hitp.//vurnrw d pr g ar ElClub di Dallas.

hii;:://wv,.rw.rs. cciu rn b ja.eC r-ilrabtticsr'Grr rnnn dr rohotic.a dell'Università della Columbia

nttp.//vvruv ca r ed. ac. u k/g rorr pslri r"g/l\4 RG hinr i

Gruppo dell'Unrversità di Edimburgo

htip /lwww. r'obotics !."eci ul

Universita o Circi^nati

$

,

F

,..-;lllfi illlrrr,nrrrr,",trrrrilllr*

q#,9, .?p***sffiè*,i,ry@

http :r7wwvv. ri.cm u. ed u/

lstituto di robotica di Carnegie Mellon.

http :l/www. cs. u ch i ca go. ed uiresea rch/a i/r n dex. htm I

I lnirror<it: di lhir:nn

http :/lww,rv. e n g. f i u. ed u/me/rcboti csi

Laboratorio dell'Università deila Florida.

i:iw

-Ì, / .,..i ,-A:.i!. - - rC ó.:C/'PU--2iC i '.- :

Accesso condizionato da autorizzazione

Università di Almería

1ilp.4slclÀ-nLÉ/ptb0 rrlrxlexX$reind rizzato all'indirizzo seguente

firp;épsis-{$-e5Unjversità Miguel Hernéndez (Escuela Politecnica de

Elche).

Breve sp'egszione rigua'do alla programnazione strut-

turata.Spiega con un semplice e conciso esempio in

''^ r ^r^^'tmmazione struttlrata.LU)d LUt t)l)LC rd Pru9rc

lit+llwww. rnlor uva e

59_!1!aArgomentr di un corso di introduzione alla program-

mazione strutturata.

Page 42: Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

COMUNICAzlTONI

+e6'+..jlJà A&!q* jlrd6 Ílt@ J:1'J:::'J+g!*lelqilft{ry"I1ry^frt.q'*h,tulffi

*-l pr t**s!Me*-*.. :....-..,.--* -*- -*t* rp Ff0rfajnèr.. :r{la {resè1al -+rJ9

*ffiffiffi*ffi*"msw-wm à

iÉ+ f +€*ttèÉ +E SÈs*las€r:*$: púa problM ronrlels el dsío,ii iìeoúos ìmhcae ied!únér,le L iegbndaddil

algoe.. lil edtr *b y otos Fqbkn, ls iue!À EoliÀ dr la prrgrúdé! ,e centu tr las Eftcff ,ls ::rÈturti $ffi y r: .s*Àir:gUg! d! n do $e s pwda rocqw nprogmr afica trl diréno de u proge effii la desmùlosirito delrùlsma n ftóddos/jú! ud+endsht. la psmarión Je raija ú{idúlo aedìde móbdri csfrctudss t n eih po@iu nedde ÈrcÉdndG strldeùr a

É*!ff!É.@"._ e**ireryProgramaciér Mrdular

t! L pr.gmdú ru,1úld dipr# aa e à$de en wùùn lp*s ndeps!ùdkt, cada w Ce bl ruer eF:úa u úm? arMùd , ùÈ I rcîdúril udef'end.trtu.nts dt 0ras úódrlos. Cada m0 dr ilbs úóú!0s r ilalEe cod6cm I rinil a puto poJ srymdo

los tuóduli! soi Bdryflùes ft rl sstú dÌ què liqb Eóód0 pedè hu ac.es0 dhedo a ruaÌqsier .tu nòddo scefs el {úùls al $e llea y

ffi pBti0s subùadrld. Sn mb"dg a. 16 reslalN pndudas Fî th ùidtb tu &asr úibalEparctdlryjs:,h ftjd1Ìo sil lÒ s rnsise a

ia nrftEFiÈ3c!6É ÉfiÈtg €-éaég!9-.: iodrkodo Ì0 dhs dù0, ùbe nmflmtrs $È cada!.ogmÀ rodms u oo,tùI, ù,rmidoprogrmd pr@i Se iadoli to,lo l0 qrs sftd.; r lasiff .r r

^úoL R dmódulq, & úod r e? dG rwdd ryÈ su! !ftús. s sùitrg0, .aùs

iùbùódùi0 dmlE eÌ {snaúl aÌ Eóddo pdmipai mdo * lrya ccqlshdù m ha S! li kra rya& r mda sulnóùl0 e denm,Jo coopleja

ÉdE debffi Íetds en 0tù edduln ùis Fqudos l* [€r a uÒ(J} qu prd:ft) w raladc ypodr rts$eriús mm alc^Mr s mb{ùe ladls ]mndrbhrpu L,. ryrdo "

ldo. r. i:r...r. lsocloqueùmhs!ìnsyahrqueftúmpor0i.tud.rrord0i:rpuùrdtrrsmr!Íu,ptrùyhs,$e!c lqdlìùeo. i mdÀwión si hkí dr rjatftf ùda Bc dr rts puhs m w r,.b]ffia 'dr la nda Diúmt

http ://www. o uc. c l/cu rso d ist/cbc/textos/teo riallonnr re t html

Accesso condizionato da auforizzazione partire dall'in-àirizza (onrrénto'

http.//puc.clInformazioni complete sui linguaggi di alto e basso lìvel-

lo, programmazione strutturata, struttura di un lin-guaggio.

h tt p :/lwr,vw. co q u i . I ce. o r g/ ca di az/ CED U 5 1 2 OV/ced u 5

120S.htmInteressante pagina dove sì illustra un corso su un lin-guaggio di programmazione strutturata, tenuto dalprofessor Carlos A. Diaz Aponte.

http.//www. itl p. ed u. mx/p u b I i caltuto ri a les/pasca llu 1 _ 1 _4.htmlDescrive le strutture di programmazione più comuni.

http://mailweb pue udIap mxi -asan clez/is15A/rs/19.htmAccesso condizionato da password. Tutti i passaggi per

rcalizzare un programma

http:l/www. a bcdatos. com/tutoria ies/of imatica. htm l_

ln questo sito si puo trovare un corso di metodologiadella programmazione inerente alle strutture, aglioperatori ecc., che tratta sia gli aspetti teorici sia quel-

li pratici.

!s*. - Jl I i3L^i@ rtuÈ +@À J ;j-J-i:,:rg

:r:.'::i:---:--"---.-i-e-l:-::.:.::-.9**".*:*:*.:*"-,-"q"-...:,:-:.:.,.-,..-"..""*"=-"""-.--..---.-...-- -

SM1gsqqrye

. Sé.ur€ DarórEncodèÈ/OecÒder5)

. BlSCAil LIN USB

http.//www. microch i p.com

Costruttore dei microcontroller PlC.

wurv.parallaxinc.cornHam.ntdllÈ5 rtu lri ù!..Níin rr 3451C SlihÉúd ù.SX.(ér.

http ://www. a rroweu ro pe. conn/

Distributore di prodotti per PIC in Europa.

http ://www. pa ra I laxi nc. co m/Strumenti di sviluppo per il BASIC Stamp, basati sul PlC.

http ://www. si ri usm i cro. com/Azienda che produce strumenti di sviluppo per micro-controller PlC.

http.//www. rentron. com/Strumenti per il PlC.

http ://www. control led.com/pic. htmlLista di induizzi dr aziende fornitricr di prodotti relativi al

PIC.

http://www.vmdesi g n.com/Simulatore di microcontroller.

@@l@t@@t@i@@