microrobotica monty peruzzo editore - 04 - comunicazioni
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
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
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
;-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.
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
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
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-
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
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.
ì 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.
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
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.
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.
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
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
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
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
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
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É # +€ & {É #
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
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"
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
,=
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;èí
,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'É'É.
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ùì
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.
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
*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.
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
t&
íCOInUNICAZIONI$ Cororteristiche e funzionornenlo del PPI
la sua struttura Inter-
neìla figura.
m
w
cÍ
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
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
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.
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
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.
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
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
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.
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
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.
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.
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@@