Sei sulla pagina 1di 42

ltt

ili COMUNICAzlIONI
Presenlozione
ltl
11u

uN
,tll,,

Comuni cazione seriale


e parallela
processori ricevono le istruzionì dal program-
ma in memoria, le eseguono gestendo i dati LINEA DEI DATI
che hanno funzione di operandi e che arriva-
no dalla memoria dei dat o dalle penferiche
di ingresso, infine generano irisultati che
saranno scritti nella memoria o inviati alle periferi- IINEA DI CLOCK
che di uscita. In questo continuo eseguirsi di istru-
zioni, il trasferimento dei dati e una parte vitale del
p rocesso.
Nella comunicazrone seriale sincrona,
Fondamentalmente il trasferimento di informazioni ogni volLa che tl trasmetiltore deposita un bit sulla linea dei dati
fra dlp disnnsitirii si nrro realizzare in drre modi: in e generato un impulso di clock
A^+^-^;^--^ t- -^--^l+a
serie o in parallelo. Nella comunicazione seriale, ^^- UCLVT
PCr ttilrtalg /o lcLlu,(r del medesimo dal ricevitore.
l'informazione digitale costituita dai bit si muove su di
una sola linea, di bit in bit. ll trasmettitore colloca il lo della ricezione, si
uti tzza una linea ausiliaria di
valore del bit da trasmettere sulla linea di comunica- clock, in cuisitrasmette un impulso di clock ognivolta
zione, e il ricevitore lo raccoglie. Normalmente, per 't-^ c^ prc)c|Lc
Lrtr ^'^'^^+^ uìr
' '^'r-rorrrazione
ilrl valida sulla linea dei
sincronizzare il momento della trasmissione con quel- al:tr I LvrrrL
uuL r:nnro<onta+n in
anmA rupprrrrrrLdtU lll 1in,
ìl9Uld.
'rr

BUS DEI DATI


E 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
0
g
&
i
COMUNICAZIONI È
t.l
ta

Presentcrzione aaaa

llll
:]]r'

Zrrrqiillll!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$ ':n*rÍ!ll,

rDATO

trr
'jl
_t
#l
ffir
K.
L'
I

CONTROLLO

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

Con ogni impulso di clock si trasmette un bit, per La comunicazione parallela e piu rapida di quei-
cui la velocità di trasferimento dell'informaztone In la seriale, dato che con ogni impulso di clock si tra-
modo seriale è fortemente condizionata dalla tecnolo- sferiscono piu bit. Per contro e più complessa da
gia di iabbricazione dei componenti del sistema. ll gestire e la linea di collegamento e piu cara, dato
grande vantaggio della comunicazione seriale sta nella che ci sono prù fili da collegare. lnoltre la vicinan-
sua semplicita e nel basso costo dell'implementazione, za fra le linee dei dati la rende piu vulnerabile aì
dato che è costituita con solo un paio di linee. Un altro rumore e alle interferenze, riducendo la distanza
,,rn+rnnin Ài guc)Ld
vdlltdugru ur nrracl-: d'
.rrhitottrrr:-'' ' 'r"\ r o
rnqj comnli.o
-' ".- c À:in
ud(u utile di comunicazione e la sicurezza nell'inter-
dalla buona immunità al rumore, che assicura la puli- scambio dei dati
-i- ,.J^i uoLr
zld ucl ^l-+i c^ uro rrov-
,

ninro lrtnnhazza di tr:-


sm tssrone.
Nella comunicazio-
ne parallela il trasmett -
tore e il ricevitore sono LINEA DEI DATI
rolleoaf i da rrn hrrs dei
..1-+i -^*^^-+^ ud +-^+
oaL, compo5ro -l- rdnre
linpp nrr,rnti hit ha il
hvto rnn rr ri si sta l:vo-
rando. La comunicazio-
ne narallela a B hit e LINEA DEt CLOCK
molto drffusa; come per
il trasferimento seriale,
sono necessarie linee dr
conrrollo che determi-
nano il verso della
comunicazione e la sin-
Nella comunicazione seriale sincrona, il dispositivo
cronizzazione fra la tra-
che funziona come master genera gli impulsi di clock che determinano I'invio e la ricezione di ogni bit.
smissione e la ricezione.
;@s#llll!$lRi]!]!]!1!iil4Èxwrntttt9ll@
Go
t.A&{ffiffiW 02
;
1i -ra
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

clock. Nel modo sincrono i bit vengono spostati sulla


Anche se il principio della comunicazione seriale si basa linea dei dati al ritmo degli impulsi del clock, generalo
sulla trasmissione dei bit di informazione ad uno ad da uno dei due comunicanti, che funziona da
uno, i modi di farlo e le procedure per il colloquio fra il " master".
trasmettitore e il ricevitore differiscono a seconda dei Nella comunicazione asincrona si suppone che
-^-, .1-^^i^
casr, oanoo l,ruogo d orverse
'.li',^".^ norme ^e metool,
-n+nali conosclu- non esista segnale di clock, però sia il trasmettitore
ti con il nome di protocolli. che il ricevitore devono essere accoroatt nel momen-
I microcontroller impiegano soprattutto quattro trpi to di depositare e ricevere l'informazione. Per que-
di comunicazione seriale, che saranno descritti in segui- sto rl trasferimento si realizza a una f requenza nor-
to e che prendono il nome di: malizzala ìn "baude-rate" che puo essere di 330,
660, 1 .2A0, 2.400, 4.800, 9.600, 19.200, 38.400
ecc Orresîa frenrienza coincide sia nel trasmettitore
che nel ricevitore, e ognuno di essi dispone del suo
20. l2C (lnter-lntegrated Circuit) npnor:t.ìro
Lv,! indinendente come si nrro vedere dalla
,,,vil./Ll

figura.
I diversi protocolli esistenti utilizzano differen-
4". R5485, speciale per comunicazioni industriali su grande distanza.
ti strategie di comunicazione, che permettono
loro di ottimizzare differenti caratteristiche, spe-
cializzandol i ner risolvere determrnate situazioni.
La oifferenza fra la comunicaz:one sincrona e quella Analizzeremo le loro proprieta, insieme ai vantaggi
À.-l-+-
--i^-.^^- ro E ^l-ll- p[eS€fiZa O aSSenZa del Segnale di e agli svantaggt.
d)rrLrur uoLo uorro "
COMUNICAziIONI ù
B

ltl

Presentcrzione
$
z'',:::ì1ìì]ìì.:1]1]l1j11lÍ]',]']']'e'''9j.iìiìììììjl']]j]j]l']]1','z:rA.ì]ì1ìì1]1]1ll ,.\fitt&t-: taa...,,,, |Nr1t111|..

DATO

,fl.
,-. I
ffir
ffir
L; -F&
E

€s
CONTROLLO

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

supportare una comunicazione parallela bidirezionale


Nella famiglia PIC 1687X, ci sono dei controllori con una con altri dispositivi compatrbilr. Oltre alle otto linee del
^^'+-
PUt LO ^-'-ll^l-
-l-"^ - R utL
POtOilEtO )tCVC d u it.tptEt |EttLoLo qrrl
hit rmnlompnt.rt,a srlicio t-_
)ut -..._.-, nor brrs 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 segnali
di co-trcllo RD e CS, legge te rnfor-
maz:oni che lo slave deposita srrila
linea dei dati. Se il master attiva i

segnali di controllo WR e CS, depo-


sita un'informazione da B bit sulla
I nea dei dat , in rodo che sia let[a
dallo 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-
Nella fotografia vecltamo un PC con ie periferrche cla.ssiche
iastiera, mcuse e stampante. I prtmi due normalmente con'tunrcano tn ncdo senale
b ta a rumore e.rile rte"e.eîze,
mentre la sfampante di solito t.tirltzza la parta parallela.
la i'endono scons g1ìab le in moite
crrcostanze.
COMUNrcAztONI

It bus lzCl (r)

u sviluppato dalla Philips Corporation per nicazione fra loro gli elementi che sono collegati, più
coprire le proprie necessità nell'implementa- una massa comune. Una ìinea bidirezionale denomi-
zione di elettrodomestici e di diversi prodotti nata SDA, trasferisce i bit di informazione in serie, e
elettronici, che avevano bisogno di un'elevata un'altra denominata SCL, supporta gli impulsi del
ìnterconnessione fra i numerosi circuiti inte- clock. Uno dei dispositivr è costantemente collegato
grati che richiedevano le schede PCB. ll nome l2C signi- al bus, con funzioni di master, mentre irestanti
fica Inter-lntegrated Circuits, cioè lnterconnessione di hanno funzione di slave. Al master compete di deter-
Circuiti Integrati. minare le caratteristiche del trasferimento e di gene-
ll grande vantaggio di questo bus è la semplicità, rare gli impulsi del clock sulla linea SCL, che è unidi-
dato che ulilizza solo due linee oer mettere in comu- 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

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

sferire inolîre dono ooni hvte trasferito il ricevitore del


le snecifiche o'ioinali di Phrlins nermplto\/:no la tra- medesimo deve generare un bit di RICONOSCIN/ENTO
smissione dei datisino ad una velocità di 100 Kbps, che (ACK#) che indica la ricezione del byte e permette di
corrispondono al modo di lavoro "standard". continuare il trasferimento. ll mancato riconoscimento
Recentemente sono stati realizzati dei dispositivi l2C di un byte, provoca l'interruzione di tutto il trasferi-
che operano in modo "veloce", raggìungendo i 400 mento.
Kbps. Ci sono microcontroller come il PlC16FB7X, che
Nel protocollo l2C ad ogni slave corrisponde un indi- contengono scritto sul silicio il protocollo l2C. Per il loro
rizzo, che è utilizzato dal master quando intende comu- funzionamento e sufficiente programmare adeguata-
nicare con uno di essi. Per questo motivo, quando il mente i registri dì controllo, e inviare ad un registro i

master inizia la comunicazione con lo slave, invia l'indi- lrrrto d: tr2cmoiioro-, nr


-ppure contenere su di un registro
rizzo del medesimo e dopo specifica se vuole leggerlo o i byte ricevuti dalla linea SDA, al ritmo degli impulsi di
scriverlo. In alcuni dispositivi, il master, dopo queste SCL. Nei microcontroller come il PlC16F84, si puo utrliz-
informazioni ne deve aggiungere altre, ad esempio se zare il bus l2C riservando solamente due piedini per
desidera leggere una memoria dovrà indicare quanti emulare le linee SDA e SCL, e mediante le routines ade-
indirizzi e quale di questi è il primo; infine si trasferisco- n, rr{n +rî.'-^++^r^ ^ rirevere
LtO)|tCLLEtC U rrlqVErE hit
UrL s|lnnorlSndO
)UpVWrl Via
9UOLE,
no i dati. software la normativa del bus.
Tutti i dati o comandi che si trasmettono con il bus f uso del bus 12C nei microcontroller permette una
12C devono avere la lunghezza di un byte, non ci sono semplice ed economica espansione delle loro risorse,
limiti invece per la quantità di byte che sì possono tra- ipotecando unicamente due dei piedini di l/O. La mag-
i

, aa:
a GO 04
-.
:

tt:l

gior parte di costruttori di circuiti integrati e di memo- bit, l'ottavo bit è l'ordine di Lettura/Scrittura (RA//#).
rie drspongono di famiglie di dispositivi adattabili al bus Dopo la condizione di STARI gli slave pongono in
l2C: in questo modo, abbiamo a disposizione memorie alta impedenza il pìedino SDA, funzionando come rice-
SRAM, EPROM, EEPROM. convertitoriAD e DA, clock in vrtori e restando in attesa di ricevere I'indirizzo dal
tempo reale, controller di LCD, controller di visualizza- master. Questi invia bit tramite la linea SDA, al ritmo
tori, porte di l/O, ecc.. che possono comunicare con il :

degli impulsi del clock, generati in SCL. ll bit del dato


microcontroller master e ampliare le sue risorse interne, deve rimanere stabile durante i fronti di SCL, in modo
comej||ustratone||afiguradel|apaginaprecedente. che gli slave possano interpretarlo correttamente.
Come possiamo osservare nella figura, nel primo byte il
,1 1.. t.ì !::ij''i'i: ,.i,, ,,.,..: 'i'i: .:...;.,.iti,t:,
iritf i',: master funziona come trasmettitore, e dopo la condi-
|lmasteriniziaeterminatuttiitrasferimenti.Perdare zione di SIART invia sette bit di indirizzo e un bit finale
I'ordine di inizio, genera la condizione di start, che con- ,
di R //#, al ritmo degli otto primi impulsi di clock pre-
siste nel produrre un fronte di discesa sulla linea SDA. senti sulla linea SCL. Inoltre genera un nono impulso di
mentre la linea SCL mantiene il livello alto. Per conclu- ', clock, in modo che lo slave a cui si è fatto accesso
.:.,:,:
dere un trasferimento genera la condizione di stop, che ponga a livello basso la linea SDA, come riconoscimen-
',.:'
consiste nel produrre un fronte di salita sulla linea SDA, to della ricezione del byte (ACK#). In questo nono
mantenendo a livello alto la linea SCL, come possiamo impulso di clock, il master funziona come ricevitore.
vedere nella figura. Nel primo byte del trasferimento, gli slave che fun-
ll primo byte di un trasferimento contiene l'indirizzo zionano come ricevitori mantengono la linea SDA in
dello slave con cui il master vuole stabilire la comunica- alta impedenza, in attesa di ricevere l'informazione dal
zione. In questo caso si ufilizza un indirizzo di sette master. Nel nono impulso di clock, il master funziona

tNrzro FINE
TRASFERIMENTO TRASFERIMENTO

5DA

scla
{r:..^.-.^?"Y*r
*CONDIZIONE {r:,.^..-.^u3Y*re
UCONDIZIONE
START STOP

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

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

I
COMUNICAZIONI

MASTER RICEVITORE
STAVE TRASMETTITORE
-
CHE PONE SDA O

sDA -U:f d3

",rl/ll IMPULSI DI CTOCK


coNDlztoNE rì

START
.,,,,";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 Quando vari dispositivi possono funzionare da master,
basso,'come riconoscimento della ricezione del byte. La esiste un procedimento che determina quale realizzerà
linea dei dati SDA, puo cambiare di stato nel periodo in questa funzione, e in quale momento. Ogni possibile
cui il segnale di clock SCL è basso. 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
Nel procedimento standard del bus l2C si utilizzano 7 il controllo del bus 5e un master immette un livello
bit per definire gli indirizzi dei 128 possibili slave, che logico 1 sulla linea SDA, e allo stesso tempo un altro
possono essere collegati al sistema. Esiste un altro for- immette un livello logico 0, prevale il secondo bit (bit
mato che ulilizza 10 bit per gli indirizzi, utìlizzando i dominante), per cui il primo master lascia il bus libero
due primi byte del trasferimento per specificarli, così sino a che il secondo genera la condizione di STOP e
come rappresentato nella fìgura. 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
lnplenrenleizione del bus I2C su silicio
,,ìl].

lltqììì:lr.ììltlurlrtllllìlìììlìììììì:ììì:lììììì:liìiìllìlf ll

It bus lzC. (H)

lcuni modelli di microcontroller PIC hanno il mentato sul chip, e per gestirlo bisogna rìservare due
protocollo del bus 12C implementato sul nicdini à nrpsto comnito e realizzare le routines
chìp, e la sua gestione si realizza program- software necessarie oer fare in modo che le informa-
mando i bit di alcuni registri. Questo è il zioni seriali entrino e escano da uno di questi, secondo
caso dei fratelli maggiori del PlC16tB4, il protocollo, e al ritmo degli impulsi di clock generati
ossia iPlC16FB7X. ll PlC16FB4 non ha il bus l2C imple- con l'altro piedino.
Nei PIC 1 6FB7X due
dei suoi piedini, il

f BUS INTERNO DEI DATI

8\ 8\
RC3TSCK/SCL e
RC4/SDl/SDA. sono
rl

muìtif unzione e f ra le
TETTURA tM :ltre rosp nossono
rY '.RTTTURA essere rúilizzalt ner
8\ supportare i trasferi-
menti del bus l2C tra-
mìte il microcontroller
ctocco r-he nro pssere
programmato in modo
da funzionare come
StNCRONTSMO masteroslave,eper
(Rca) indirizzi da 7 o da 'lO
mG
5Ct
Wt'ctocK bit ll blocco che contie-
ne l'hardware del PIC
(Rc4)
m @ destinato al bus l2C sr
SDA chiama SSP.

C'è un bit (SSPEN)


M nel registro SSPCON
che quando viene
rNDrRrzzo messo a 1, determina la
COMPARATO ronf inrrraziane dei nie-
dini RC3/SCL e
RC4/SDA per il trasfe'i-
mento di informazioni
<nttn il nrntnrnlln l?C
Questi piedini della
ATTIVA/DISATTIVA
nnrte C devonn essere
BITSEP
nrcredpntpmente conf i-
gurati come ingressi
scrivendo i bit corrispon-
Struttura generale dei registri dei PlCl 6FB7X incailcata di controllare itrasferimenti nel modo l2C. dpnti dol rpn istrn TR ISC .
COfUIUNTCAZIONI
lnplemenfcrzione del bus l2C ss silicio

Per controllare il modulo SSP nel modo l2C abbiamo microcontroller. Di seguito riportiamo r tre modi princi-
a disoosizione sei reoistri: 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.
SSPSR: Registro di spostamento che convefte l'informazione da seriale a Le varianti ammesse all'interno del modo master, con i

e da oarallela a seriale.
relativi codici, sono riportate nella tabella

SSPSIAT: Registro di stato. r^^^


rvvv Modo master bus l2C. Frequenza =
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- Per attivare il modulo SSP e configurare i piedini
ne il dato che deve essere trasmesso, o che deve esse- RC3/SCL e RC4/SDA per iltrasferimento l2C, dobbiamo
re ricevuto. ll SSPSR è un registro di spostamento che scrivere SSPEN = . Se SSPEN = 0, le linee
'1
RC3 e RC4
realizza la conversione da serie a parallelo e viceversa. funzionano come l/O digitali. Se si pone a O il bit CKP i
Quando il SSPSR è stato riempito con gli B bit, trasferi- livolli
ilvEril di
ur nrracti niodini il ci
)t Lwt il t9utqt tu )qLUt tuu la
rnn{inlr:nn ca.^n.ln tE cnari
)PEL|-
vuc)rr vrqurr
sce l'informazione al SSPBUFF e si attiva ilflag SSPIF. Se fiche l2C e si attiva i clock nel modo slave. SSPOV e il
si riceve un altro byte in SSPR prima che la CPU abbia flag di overflow che si pone a 1 quando si riempie il
letto if SSPBUFF, si attiva il flag di overflow SSPOV che ronictrn ((PR nrimr di :riar lottn il roni<trn SSPBUFF,
è il bit 6 di SSPCON. ll regrstro SSPADD contiene l'indi- cosa chp srnnone la oerdita dell'ultima informazione
rizzo dello slave. Quando si utilizzano indirizzi da 10 ricevuta, ll bit WCOL del registro SSPCON è un rileva-
bit, il byte alto dell'indirizzo contiene idue bit piu signi- tore di collisione in scrittura, e quando vale 1 significa
ficatìvi (A9 e AB) e si codrfica con il seguente formato: che c'è stato un tentatìvo di scrivere SSPBUFF senza
1-1-1-1-0-49-AB-0. nrim: :iror lottn
rELLU l'infnr*î-i^n^ nraraAnn+a
Prrro ovqr rililuIlldzlur lu PTCLUUUI lLc,

È il reorstro di controllo nrincinalp npr la nestione del Orroctn


vuc)Lv roni<trn
q9r)ru, l:rq rrr rttr rr: ilrrqr
<trruLLurq
!u )Lr intorn:rrq a 6jp66+r+r
E rrPwr nnllr
LoLo llcllo
modulo SSP nel modo l2C. La distribuzione dei suoi bit figura, permette la iettura di tuttl i suoi bit ma solo i

e riportata nella figura drre nrrrsionifir,atirri nossono essere scritti, Contiene i

quattro bit meno significativi di SSPCON, SSPM3 -


I flag che ci informano sullo stato del trasferimento dei
SSPMO, servono per selezionare il modo di lavoro del suoi dati.

REGISTRO SSPCON

SIruIlurd interna del regrstro di controllo ssPCO,ry


COMI'NICAzlIONI
Implernenteizione 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- I rnmniti eloi hi+ .li qqPanNl? cnnn i conrrpnf i'
r!v,,,v,rl

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
ACKSÍAÎ Quando si pone a I indica se ha ricevuto un bit di riconoscimento
livelli delle linee SDA e SCL nel modo master o multi- ACK dello slave.
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 RCEN: Si pone a f per abilitare il master
ha valore 0 quando si riceve un indirizzo. R/W# in modo ricezione.

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î. RSEN: 5i pone a I per ripetere la condizione di Start.

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 Questo modo di lavoro si attiva scrivendo nel registro
lpnnere
,rY:r!, L p srrivere e dono rn Reset orendono tutti il SSPCON il biî SSPEN = 1 . Dopo aver realtzzato questa
valore O. nnarrzinno
vPLru4,v,
l'rrionto
,(L di<nnno
v,J|Jv"s di
v' 6
v nnzinnì'
vHL'v"'.

REGISTRO SSPCON2

Struttura interna del registro ausiliario di controllo SSPCON2.


COflIUN'CAzlIONI
l2C su silicio

. Generare la condizione di Start. c. Si carica in SSPBUFF I'induizzo dello slave da tra-


. Generare la condizione di ripetizione di Start. smetîere.
. Scrivere su SSPBUFF per iniziare la trasmissione di d. Si manda in uscita lramite SDA l'indirizzo dello
un dato o di un indutzzo. slave.
. Generare la condizione di Stop. e. Lo slave genera il bit di riconoscimento ACK. rice-
. Configurare il modo l2C in ricezione. vuto dal master in SSPCON2.
. Generare la condizione di riconoscimento ACK. f. Si genera un interrupt alla fine del nono impulso
alla fine della ricezrone di un byte di dati. di clock e SSPIF = 'l .

ll master genera gli impulsi di clock e le condizioni di g. L'utente carica in SSPBUFF un dato.
Start e di Stop. Quando il master e in trasmissrone il h. Si trasmette il byte del dato tramite SDA.
primo byte indica l'indirizzo dello slave (7 bit più il bit i. Si riceve il bit di riconoscimento dello slave.
RA//#). Per ogni byte che è stato rìcevuto dal master, si j. Si genera un interrupt nel nono impulso di clock e
trasmette un bit di riconoscimento ACK. La sequenza dei si pone SSPIF = 1.
passi da realizzare in una trasmissione del master sareb- k. Si genera la condizione di Stop ponendo PEN = 1

be la seguente: in SSPCON2.
a. L'utente genera la condizione di Start, ponendo L Dopo aver completato la condizione di Ston si
SEN = 1 nel registro SSPCON. genera un interrupt.
b. Si pone il bit SSPIF = 1 per terminare la condizio- Nella figura è riportato il cronogramma di una tipica tra-
ne di Start e non iniziarne un'altra orima. smissione di un PIC'l6FB7X quando opera in modo master.

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

i! :-ks r;i; -i
'
SDA --i:;;;l-::ì;-:-;+
F scritlocon i 7 6il di indirizzo
dello trosmissione R/W -

ì 'òon..iloto t-.ir" lo ,ouiin"i


'-. di servizio del softwore \
per l'interrupt SSP l

BF(SSPSTAT<O>)
l
Slliii,," Ji sSpeì-rÈ SSPBUF è scrillo vio softwore i

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

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


COMUNICAZ;TONI
I dispositivi l2C

It bus lz0 (rrr)

empre più costruttori di circuiti integrati inse- 1, quindi se i 3 piedini menzionati sono collegati a
riscono nei loro cataloohi comoonenti che massa come mostrato nella figura, I'tndirizzo completo
rntegrano dispositivi l2C, il che significa che sarà: '1-0-0-1-0-0-0.
questi componenti sono in grado di trasferire In seguito descriveremo le principali caratteristiche
informazioni secondo la normativa del bus deì PCFB591, che è un componente molto rappresen-
l2C, e possono essere collegati a reti con questo proto- tativo fra queìli fabbricati con l'interfaccia l2C.
collo rispondendo agli indtrizzi con cui 5966 <t:ti nrn- Sia questo circuito che il PCFB574A, che è una porta
grammati. di l/O digitali, il PCF8583, che è un clock/Calendario +
Con l'obiettivo di collegare al bus 12C diversi dispo- RAM e il SAA1064, che è un controllore di display a 7
sitivi uguali, nel caso che uno non sia sufficiente, gli segmenti, sono utilizzati nella scheda N/ICRO'PlC TRAI-
induizzi d questi componenti non sono totalmente NER PLUS, che verra descritta in seguito, e che permet-
definiti in fabbrica, ma gli ultimi bit sono lasciati liberi e te l'espansione del sistema di sviluppo MICRO'PlC TRAI-
sono collegati a piedin che devono essere collegati a NER della ditta lngen eria de Microsistemas
terra o al positivo, per prendere valore 0 o 1 . Questo e Prnnr:m:dnc
. ,"y,-, S I

anche il caso del componente PCFB591, che contiene


un convertitore A"/D e uno D/A, e dr cui parleremo.
I'induizzo di 7 bit a cui risponde ha i4 bit piu significa- tratta di un circuito integrato CMOS a basso consu-
Si
tivi già programmati, mentre i 3 meno significativi sono mn rhc disnnne di rrn'interfaccia con il bus l2C e ha tre
determinati dall'utente collegando i piedini A0, A1 e 42 linee per determinare via hardware uno degli indirizzi
a massa o al positivo l4 bit più significativi sono 1-0-0- fra gli B possibili a cui rispondere nella rete. Ha quattro

m
5CL
5DA

AO
AI
A2 :@-ffi
EXT

VDD
Vss

osc
ffi fffirffiHllt

ffi ro"$W-'m
AINO
AINI
AIN2 -

roffi
AIN3

Collegando i piedini A0, Al , VREF

É 4r A- n tA))A U
^ HZ ----- -l PV)rLtVVr
^ At ^^-;+;,,^
si possono collocare sino a B
@ AGND

dispositivi PCFB591 nel bus l2C


ln ot tP\fa ea<o l'indirizzn
della figura è 1-0-0-0-1-0-0-0. Schema a blocchi del dispositivo l2C PCFB591 che contrene un convertitore AID e uno D/A
CON'IUN'CAz|ONI
I dispositivi l2C
É
.'l:'
iNìt{ìì*s:luùuìutututìittìut]w*r1t:r,rrrr,r,:rril ,ry\tiuluu!!tau!re:?:::rrrrl!srÍt1Ír!riw:ì!1&$ìrììirìlììtsìd@ruìtl .,t:.,@úrt,.jjajaaaaataa:ta\ fi rrrtirtìiiúMFìryrfi rrtullllli''

N9 PIN SEGNAIE : DESCRIZIONE


AINO
t-4 AINO-A|N4 : Ingresso onologico per I'ADC
A'NI 5-7 AO-A2 : Linee degli indirizzi hqrdwqre
AIN2 AOUT 8 Vss : Negotivo dell'olimentozione
AIN3 Vrrr 9 SDA : lineo dei doti del bus l2C
AO i]]AGND IO SCL : Lineo del clock del bus l2C
AI EXI tl OSC I t/O dell'oscillqtore
A2 t2 EXT , Selezione dell'oscillqtoîe2 "O" inlerno; "1" eslerno
Vss t3 AGND , Morro del segnole onologico
t4 Vref ' Ingresso dello tensione di riferimento
t5 Aout Uscito onologico del DAC
,9_ vdd Positivo dell'olimentozione

Predinaura del PCFB591 e descrizione dei piedrni

MsB LSB

ffi BY'EDlcoN'Ror[o

'r + I

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

l
inè or ruióiùènir'iiùò
l Io$ivoo"l"Ì
t- .-.. ,,,-.,,. .-..,,-,-..-..... ... .
SEIIZIONE DTI.TIPO DI INGRESSO ANALOGICO

OUATIRO INGRESSI INDIPINDTNTI


R,'fo rli ínrlirí--n rnrri<nnnrlgpte dl PC|B59î .
OO
AINO CANALO
AINI CANAI. ì
AIN2 CANAT 2
AIN3 CANAL 3

ingressi analogici per il convertitore A/D, e un segnale OI TRE INGRESSI INOIPENDENII

analogico per il convertitore D/A. ll margine di tensione cAMr.0

-^-r^^i-' ^"^
ororugrLo Puv "'"i"^
vor rors fra 0 V e la tensione di alimenta-
I
AINI
CANAI. I
zione. ll PCF8591 si attiva quando riceve tramite rl bus AIN2
CANAT 2
l2C I'indirizzo a cui è stato programmato. I piedini A0, AIN3

A1 e 42 determinano via hardware l'indirizzo valido, : ì0 DUÈ |NGRESS| INDIPENDENÌ|


E UNO DI;IERENZIAI.E

secondo quanto mostrato nella f igura. , AtNo- CANAT 0


: 4111- 641141 1

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


^'r'4 +
&-caUnir
lo di Lettura/Scrittura (RA//#), il master invia un secon- AlN3---ff
do hvte dr ror^lrollo rhp si r:rica nel renistro di con- . .I
ì DUE INGRESSI DIFFERENZIALI

ArNo--1fu-cnNrLo
trollo del convertitore. I 4 bit più significativi di questo AlNl ----+ÉP-
byte servono per attivare l'uscita analogica del CD/A e arN2-----&r
&eììlìÈll!ì>- caNAt I
AIN3 ----J#P-
programmare gìi ingressi del CA/D. I 4 bit meno signifì-
cativi selezionano un canale di ingresso, e il numero del rr-lo or usèrn lln,oocl
canale si autoincrementerà alla f ine della conversione.

In caso di utilizzo del convertitore D/A, il terzo byte che ll master invia al PCFB591 un secondo byte di controllo, i cui bit
qoverndno le pani fondamenàli dell operaztone
invia il master e il valore diqitale che si vuole convertire
GOMUNIGAZjIONI
I dispositivi l2G
. -,r*--" - -

USCITA

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

Vour
Voo
Vnrr

Vlotro
Vss HEX
00 0t 02 03 04

ll codice binario del terzo byte che invia il master seleziona una Grafírn rha rannrè<antÀ l'^ffqnimento r'lol <oonalp
delle 256 resistenze, ottenendo il segnale analogico equivalente attalvgt\u
); ,,--;+- ut,^ r.,^-ione
-^^/^^r-^ ut u)rtLat turtL del codice binario o esadecimale.

in tensione analogica. Il convertitore D/A è composto codice brnario ricevuto, ottenendo il segnale analogico
da un divisore di tensione formato da 256 resìstenze, a equ rvalente.
-,,: -i
LUI )l dPPILO
r- +^^.;^îe
^^^r:-- rú LEr)rVl di riferimento. Un decodifica_ ll segnale analogico può essere amplificato prima di
tore selezrona uno di questi elementì a seconda del essere mandato al piedino Aout, dove verra mantent-

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

Vour
'-siÀróbra-r-rÀ rN-DipÉNóÈNzA-
- -'- - VATORE
PRECEDENTE VAI-ORE DEL BYTEI
O VATORE PRECEDENTEMENTE CONTENUTO DEt DATO
CONTENUTO NEL REGISTRO DAC NEL REG. DAC

Sequenza della conversione D/A


tI
itì

coniluNrcAzloNl Y.

&
'

:G
$
.rlls
: rll|
.;,ajiaaali..att'\hi11*|#'#&é&'

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

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

CONVERSIONE CONVERSIONE CONVERSIONE


NFI P,VTF 1
@tM|......................4
NtrI R.\/Ttr NtrI NVTtr'ì
'
TRASMISSIONE TRASMISSIONE TRASMISSIONE
BYTE PRECEDENTE DEL BYTF I DEL BYTE 2
4

Sequenza corrispondente ad una conversione A/D

stabile sino alla prossima conversione. ll convertitore


D/A è utilizzato anche nella conversione che realizza il
convertitore A"/D.

Ve
rB USCITA DIGITALE

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 mostrato
nella figura che riporta lo schema a blocchi delsuo fun-
zronamento. Schema a blocchi
del convertitore AlD ad approsstmazioni successiye.
La tensione analogica di ingresso Ve che si vuole
convertire a digitale, viene comparata con quella forni-
ta dal convertitore D/A e dal comparatore esce 0 o 1 a depositato sul registro ADC per la successiva elabora-
seconda del risultato. Questa uscita si applica al registro zione.
ad approssimazioni successive, e in ogni ciclo si deter-
mina il valore di uno degli 8 bit di uscita. Al termine
degli 8 cicli si ottrene il segnale digitale.
ll master inizia Ia CAD inviando l'indirizzo e il bit di Se è stato attivato il bit 2 del registro di controllo
lettura, dopo riceve il riconoscimento ACK da parte del (autoincremento), si seleziona il canale successivo auto-
PCFB591. Quest'ultimo invia il byte della conversione maticamente. ll primo byte che trasmette il dispositìvo
precedente prima di campionare nuovamente il canale durante il ciclo di lettura contiene il risultato della con-
selezronato, per realizzare una nuova conversione. Al versione precedente. Se c'è stato un Reset per connes-
termine di questa si ottiene il codice a B bit che viene sione dell'alimentazione, il bvte letto è 80 Hex.
COMUNICAzlIONT
Comunicerzione serigle sincroner e eisincronel

RS-232-C (r)

ulilizzo diffuso della comunica-


zione seriale inizio con l'adatta-
mento di numerose periferiche
,
BYTE BYTE
svttè:SVNar i 2" i 3" t 4' ln t
tipiche dei PC, dall'umile mou- :.:..']|.l,...i'i.i:.r:..]'...:''1'---'..!.'.é|]!*:..'ì.:..,...,..,:...'..."..'.-....,1.,..

se sino al piu complesso mo- l* sYrr DI *l- BYTE DEI DATI


dem. A fronte di un così grande quantitati- slNcRoNtsMo
vo di dispositivi candidati ad utilizzare que-
sto tipo di trasferimento che accomunava ì

vantaggi della semplicità, economia e sicu- Nella comunicazione seriale sincrona i byte dei dati
rezza, furono creati diversi organismi che si trasferiscono uno di seguito all'altro, preceduti da alcuni bit di sincronizzazione
cercarono di normalizzare i protocolli per
poter omologare i prodottì che li utilizzavano. Fra que- rrno o due hvte di sincronismo. ll ricevitore deve auto-
sti ricordiamo negli USA l'ElA, che propose l'interfaccia sincronizzarsi con i bit che rìceve; nella figura riportia-
RS-232-C, considerata uno standard industriale per il mo il formato generale de Ia comunicazione seriale s n-
suo impiego nelle porte seriali dei PC. ln Europa il CCTT crona.
propose l'interfaccia V-24 che e identica alla RS-232-C.
Fsistono drre tini di comunicazione seriale: sincrona
so oJlllLlullu,
:<inrrnn: p nlo(t't1l+im:
L 9urJL urLllllc a
E l:lo nirr rr-tilizz:+:
Plu Utll)LLala.
ASINCRONA: con questo sistema i bit da trasferire LOme a00ramo
-^*^ -L-L-l--^ gra
^i: spregato, In questa comunlcazlone
-^

in <orio qnnn divi<i in nirrnli n:rrhptti n nrr rnni rhe si nnni orr,nnn di ht dpi d:ti dpvp éssere nrereduto e Se-
rnrri:nn v,r!ruuLl
nrarad, rti d: ,rn <onn:la di inizin o conrriti d: guito da segnali di sincronizzazìone. Come minimo da-
uno d fine, Ogni gruppo di bit, ir ge'.erale B, e una vanti abbiamo un bit di Start e dìetro uno di Stop
^-"^r- -.-a
Nr^l Lo)v ni,, )L,rrvillu ali hit vu
B urr da fraSfer fe Un parametro fondamentale di tutta la comunica-
pdruro. I\Er P u "omnlice vil u Lr o SO_

nn nrora|r
llv PlcLcuuLl ti d:
uo rn
ulrvrLhrt ni
ur rniz'n l(t:rt\ L/ o
L 2l
ur lprmina
"(lllllllr
nla-
uc- zrone e la velocita, che determina il periodo dt tempo in
nli I hit <i nnno
gil u urL )' pvrrs rn hil
,urr di fine
ur. *, ,.,,- l(tnn\ qpnn:l: :n-
, -,_grloro qP-
6f-1p cui ogni bit permane sulla linea di trasmìssione. L'unità
punto il ter"nine del trasferimento, cosr come rioortato di misura è il " baud ", che generalmente srgnif ica un bit
nol nr:firn al secordo Nel protocollo RS-232-C, ìa frequenza rn
qlNIaRONlA
{n. rn
,rr n1oqtÒ tinn
tlPU di
Ul tr:cfprimo.+n
tlqJlEllll'qlllU cari:
rcllO a
C baud deve avere un valore normalizzato. 330, 600,
9uL)(W
l'emettilore invia i byte dei dati in sequenza, uno dietro 1200,2400,4800, 9600, 19 200,38.400, ecc.
l'altro sino al ternine l byte dei dati sono preceduti da Ur'altra caratteristica importante d'
un protocollo e ìl numero di bit che con-
tiono
LrL'rL nnni
v:rr n,rrrhottn v n:ral:
'L (v 6'L
PolUlq,
nha
Ll nlo,,a
ls UEVE
BIT STOP ^-^ r'-
c))grc LUr lPrE)u -
I rc J r: 9. Anche se non

I À nhhlin:tnrin À mnlln {ronrronta inrlrr-


doro in nnni lr:<forimant^ rn hit r{, n:-
"Y,,, .,
rita, dopo bit dei dat, e
i prima del bit di
(tnn
J r vP. orroctn hit q, 66pnrr
urL Jr ysr lul d E .; r;l^\,a
I rlEVo ^^r
vus)Lv ^ )l Pcl
indicare e conoscere la parita o disparita
Nella comunicazrone sertale astncrona di base, ogni pacchetto di bit dei del numero di b t a 1 che contiene la pa-
dati deve e,sere preceduto da un bit di lnizio Sldrlre seguito da ttn biL di Fine (SLoal
rola rnviata o ricevuta, rispettivamente. E
COMUNICAziIONI
Cornuniceizione sericrle sincrond e qsincnoncl

nresi i dle staîi looici ll livello alto fra +5 e


BIT 2 BIT : +15 VDC, e il livello basso fra -5 e -15 VDC
BIT START Pl PARITII, SrOP i
per i segnali di uscita. Se i segnali sono di
ingresso i range variano fra + 3 e + 15 VDC
per il livello alto e f ra -3 e -15 VDC per il li-
:lolllooti ,
vello basso. Dato che questi livelli non sono
8 BIT DEI DATI
compatibili con quelli TTL dei mìcrocontrol-
ler e dei microprocessori del PC, sono ne-
ll cronogramma rappresenta il formato R5232-C del trasferimento
di una parola di B bit, che deve esserepreceduta dal bit di Start e seguita dal bit cessari circuiti integrati specializzati, come
di aarita e da 2 bit di Stoa quello mostrato in figura, che ha la sigla
MAX232, che hanno il comprto di adattare
uno strumento molto efficace e molto semplice per sa- i ìivelli in enlrambi i versi.
pere se il trasferimento è stato realizzalo normalmente
o si sono verificati errori, che la maggior parte delle vol-
te sono provocati da un solo bit che cambia valore, Si tratta di un circuito integrato progettato e costruito
cambiando la parità. Se nella trasmissione si verifica un da Intel, che, come dice il suo nome, e un Trasmettito-
errore, cioè un bit cambia valore, cambierà la parità, e re-Ricevitore Sincrono-Asincrono Universale. La sua
questo fatto sarà rilevato dal bit di parità funzione e quella di convertire l'informazione parallela,
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 fra
":{'o*'
due trasferimenti di parole consecutive.
Nella figura si mostra il diagramma
temporale della trasmissione di una pa- ru m'-J:-**m
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-
la USART trasforma I'informazione seriale in parallela e viceversa.

to e dispari, ovvero che ci sono cinque


bit a 1 . lnfine abbiamo 2 bit di Stop ad indicare che la che arriva dal microcontroller o dal PC, in seriale per le
parola successiva da trasferire deve attendere unmini- 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-
^,,"-;
9UrO s lvirPW)LC
!- , blocchi:
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 tramite

la linea TxC#.

. Sezione ricezione:
vcc
Riceve i dati seriali tramite la linea RxD, e li trasforma in
LIVELLI RS232-C IIVETII TTt paralìeli, per inviarli alla CPU mediante il bus dei dati da
B bit. La linea RxRDY avvisa ouando ha ricevuto un da-
ll circuito integrato MAX 232 to, e tramite RxC# si applica la frequenza di lavoro, che
trasforma i livelli R5232-C in livelli TTL e viceversa
deve essere uguale a quella di trasmissione.

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


ae +. * *** 4 & EÉ # +€ & # {É
llll connUN.CMloNl co ro
a-,4-aaaaaaaaaaaaaaaaataa)ta:a:4.::aaaataaaaaaaaaa\r\t:.......1::.1............),..4)r*:::arj

Comunicazione seriule sincroner e crsincroncr

USART 825I
USCITA DATO SERIALE
TxD
PRONTO PER TRASMETTTTOREVUOTO
TxRDY TxE
ACCETTARE DATI
FREQ. CTOCK TRASM.
T_xC

CARATTERE
INGRESSO DATI SERIALI
-RxD-
RxRDY
DISPONIBILE FRE QU E N ZA C LOC K RtC EZ.
n
Rx_C

tl
BUs DEI DATI
tEl
lú,1
\ till
8' tdl
SYNDET

RESET MODEM PRONIO


TETTURA DSR
m
CLK
crocK TERMTNALE DEr DAT| PRONTO
D-TR
U
SCRITTURA
CONTROLLO
m ABITITAZIONE A TRASMETTERE
-
cTs
MODEM
coNTROLTO/DATO PER USART
c/D
SELEZIONE CHIP RICHIESTA DI INVIO
cT RT5
DATI

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 D2
tOUT), carica un registro fondamentale di questa sezio-
D3 DI
ne .rln 8 hit ner nrocedere successivamente ad inviarli
RxD :'r::.
DO
uno a uno alla periferica. Se si esegue un'istruzione di
innrpsso ilNl t a CPI I leanp il rpnistro dpl hrrffpr dove so- GND '...;:L
VCC
nn r,rric,ati r^rl: B hit chp sono arrivat in modo seriale da - D4
1a perif enca. D5.
Dó,
. Sezione di controllo. D7
Rceve e invia i segnali dr controllo necessari per sup- TxC.
portare la corr-nicazione e pe' adallarsi ad un modem,
wn
-h^C Í^
Ll UlnI Ul)pU)lLlVU .1^).o
Àicnnci+i',n LqVu!L d
v rr:<[nrm:ro
.ruJrvr | | rur! d.'i di^if]l;
ud Ll Ul9ltOll
-^-i-r i^ ..J^+. ^^- ^^r^
lllUdLI
)trlldll, dlldlU9lLl, npr nni
pLr -r:smp-'o"li
rrL..L ,r iU r
.,r Una li-ea
cs
Vvr .ruJr
telefonica. c/D
t;;', L'USART ha un contenitore a 28 pin per supporta- RD :
t-
cTs
':=.1-',' re trrtti iseonali
I JLyrru'r neces.--i
TTLLLJ)Cll ^^. ouottOl)l
PEI
r- ,,î
-.r-++-.-i UC
latO UnaUl RxRDY ,
SYNDET
CPU a 8 bit, e dall'altro alle periferiche seriali e al mo-
rì TxRDY
dem.
|:
LO niorlin:tlr:
PrEUIrOLUrO
r]al
Uqt .^mn^nantó
lVrrrPVrrqrrLE À rrvvr LqLo nnllr
E rinnr+r+r rrEilo
+i^,,.-
rvuro o- l-+^
roLU.

..

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

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

I
COMUilICAZIONI
Conunicazione serieile sincrono e eisincronc

PAROTA DELrISTRUZIONE
MODO (ASTNCRONO)

MODO
srNCRoNo

GENERAZTONE/
VERIFICA . I0: PARI
DEttA PARITAII: DISP.

ABiljTMONE f I : ABIUTATA
DELL,A PARITA l0: DlSABltlTATA

Comoiti dei bit della aarola "istruzione modo"

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


Questo circuito è programmabile, quindi caricando cor- mero di bit di Stop, ecc.
rettamente i bit dei registri di controllo, si stabiliscono le f USART dispone di un solo registro di controllo per
caratlerrstiche del suo f unzionamento, e di conseguen- ia programmazione, pero è multifunzione, in modo che
za quelle deila comunicazione. Tra le caratteristiche pro- quando siinizializza la configurazione dopo un reset, de-
grammabili ricordiamo: selezione del trasferimento sin- ve essere scritto due volie consecutivamente. Prima si
crono e asincrono, velocità di trasferimento, numero di scrive un byte che s, chiama "istruzione modo", e dopo
un altro che si chiama "istru-
zione comando". Con il pri-
PAROLA DELTISTRUZIONE COMANDO mo sr definiscono le caratteri-
stiche PriP6iPali del funziona-
mento dell'USART e con il se-
"I " PERMETTE condo le funzioni ausiliarie,
LA RICERCA DI ABIIJTA/ONE ALLA TRASMISSIONE
CARATTERI SYNC, l: ABIIITATA come illustrato nella figura,
IN MODO SINCRONO 0: DlSABltlTATA che descrive il romnito di
u9r |ai hit
rur ru ucr 5 6ii
urr q ur a' 'nc+a
"I" ^^^rrn^ vuu)rc
"I" PASSA IL 825I IMPOSTA LA TINEA DI
AI FORMATO USCITA DTR A "0" 0ue parore.
DEL[ISTRUZIONE La cosa interessante di
ABITITAZIONE ATLA RICEZIONE
MODO rirrttita intonr:tn
I: ABILITATA ^llo(l^
,,I'' IMPOSTA RTS = O 0: DISABIIITATA chiamato USART è che moltr
"1" FORZA LA LINEA TxD A "0" modelli dr microprocessori lo
IJI{POSIANDO I Sl
EANCEITANO
"0" TxD FUNZIONA NORMAIMENTE contengono integrato sul si-
I FLAG PE, OE, FE. lirin n ro<-in liil rendo:d:iti
ilLrv,9Jq)LV iqrrus oudlll d:
RESET DEI FLAG
una connessione diretta con
rrfti Ii tini
fLULLr îli VLrrrurrlrFri.L^rq Ll-^^lE
LrVr ur
^arif
comunicano tramite il proto-
eamnìti rlpi hit r'lella narnl4 "1571'Lt7t9ne COmandO"
collo RS-232-C.
GO tO

RS-232-C (il)

_, lcuni modelli di microcontroller contengo-


:.. :r1,
Nella figura è riportato lo schema del comportamento
no implementati sul silicio diversi tipi di dell'USART dei PIC in modo asincrono e sincrono.
." ,,,-
.,,
_;1" porte di comunicazione, tra cui un USARI, Nel primo iì trasferimento si realizza sulle linee Tx e
t'^ " ). per permettere la comunicazione con il Rx, dalle quali escono ed entrano ibit seriali, alla veìo-
'' ': . protocollo RS-232-C, fra questi il cita della frequenza di lavoro. Nel modo sincrono la
PIC 16C7X e il PIC 16F87X. linea DT è bìdirezionale, e trasla idati nei due sensi, alla
ln riferimento alla famiglia PlC16F87X, abbiamo già frequenza degli impuìsi di clock che arrivano dalla lìnea
visto che dispone di un moduìo MSSP che supporta due CK del Master. Queste linee sono implementate sui pie-
formatì di comunìcazione sincrona, con il segnale di dini multifunzione RC7/R)VDT e RC6/TX7CK.
clock, in modo SPl, e in modo bus l2C. Inoltre possie- Quando si lavora con il protocollo RS-232-C la paro-
dono un modulo SCI (Serial Comunication Interface) la puo essere di 8 o 9 bit - abitualmente è 8 bit- i quali
che contiene un USART capace di lavorare in tre modr sono preceduti dal bit di Start e seguiti dal bit di Stop. I

diversi: PlC16FB7X non supportano il bit di parita, quindi se la


1o. Asincrono (Full duplex bidirezionale). periferica da controllare lo richiede, bisognerà crearlo
2o. Sincrono Master (Haìf duplex unidirezionale). vìa software, scrivendolo sul nono bit del dato.
3". Sincrono Slave (Half duplex unidirezionale).
,,, 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, e
realizza tre campionamenti per ogni bit, decidendo il
varore a maggroranza.
IRASMISSIONE 2". Generatore di baud: ha il compito di generare
gli impulsi della frequenza di lavoro.
RICEZIONE
3". Trasmettitore asincrono.
4". Ricevitore asincrono.

MODO SINCRONO

8,.

MASTER sLAVE

Comnorfdmcnto etei PlCl6FB7X in modo seriale asincrono o,lnl,r",rrrru ,rlrrrnu ar, rio^i
e sincrono. dei PlCl6FB7X.
,=

Nella figura è riportata la struttura interna dell'USARL BUs DEI


a/ ùatl
dove notiamo due registri: quello di spostamento, TSR
e il buffer per la memorizzazione del dato parallelo, ffiÌst ffiffi
TXREG in trasmissione e RCREG in ricezione.

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


:
w EÈ@Fffiri
I trasferimenti nel protocollo RS-232-C si effettuano ad
una frequenza normalizzata in baud (330, 600, 1.200, ffiffi ,:ffi
2.400, 4.800. 9.600, 19.200, 38.400 ecc.). Questa fre-
quenza è prodotta dal generatore di baud BRG, il cui
iffi*Hffiwffi :

Schema a blocchi del trasmettitore asincrono dell'USART.


valore è controllato dalle impostazioni del registro
SPB RG. ":!

La frequenza del generatore di baud dipende dal i


valore X caricato nel registro PSBRG, e dal valore del bit TXSTA :"

,
BRGH (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.
Struttura interna del registro
di stato del trasmettitore dell'USART del PlCl 6FB7X.
Frequenza in baud = Fosc / K * (X + 1)
X: Valore caricato nel registro SPBRG
K=64seBRGH=0 Lo schema a blocchi del trasmettitore asincrono
K=16seBRGH=1 della figura, mostra gli elementi fondamentali e il com-
pito di alcuni bit di controllo del registro di stato del tra-
t:l ..j'E í+,7;T {:_{} !"4T 2 7,2
&.!} ::4 tî 7 í.3 {} t"!,!i smettrtore.
&57.?;èi"#.!3r:+{: ll registro di stato del trasmettitore si chiama TXSTA
Nella 'figura è riportato il collegamento fra due e possiamo vedere la sua struttura interna nella figura
PlC16FB7X tramite l'USARI di cui dispongono entrambi. in alto.
sotto il orotocollo RS-232-C. Uno dei due funziona come ll trasmettitore dispone di un flag TXIF che viene
trasmettitore, e l'altro come ricevitore. ll dato da invrare messo a 1 quando resta vuoto, e in quell'istante si puo
tramite I'USART di trasmissione è depositato sul registro generare un interrupt nel caso che il bit di abilitazione
TXREG, e poi è passato al registro di spostamento TSR, degli interrupt si pone TXIE = 1. Al momento di scrive-
che manda in uscita i bit in modo sequenziale. Inoltre re un altro dato in TXREG si pone TXIF = 0. Inoltre il bit
prima di trasmettere i bit dei datr, genera il bit di Start e
alla fine introduce un bit di Stop. L'USART ricevitore rice-
I PASSI DA SEGUIRE PER 1A TRASfiIISSIOIIE
ve questi bit, elimina il bit di Start e quello di Stop, e
ASilICROfrA SO]|O I SEGUEilTT:
quando il registro RSR dispone di tutti i bit della parola la
trasla automaticamente al reqistro buffer RCREG. î. 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 farlo
funzionare in modo asincrono.

T: 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
Collegamento di due PlCl6FB7X
la trasmissione,
tramite il loro modulo USART in funzionamento asincrono

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


COMUNICAziIONI
,r,,r,,,,,,,,,r,À,,,,

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

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

lrl

ÈrC
:
'1ìtùil1111,,1,sr-*sir

TRMT del registro TXSTA vale 1 quando il trasmettitore riceve il bit di Stop si sposta l'informazione al registro
e vuoto. ll bit CSRC definisce nel modo sincrono quan- RCREG. ll registro di controllo e di stato del ricevitore si
do l'USART lavora come Master (1) o come Slave (0). chiama RCSTA e la sua struttura interna e riportata nella
figura.
'1,
Quando il dato ha 9 bit bisogna scrivere RX9 = e
ll dato ricevuto via seriale dal pin RC7/R)7DT entra nel il nono bit si colloca in RX9D del registro RCSTA.
rpoistro
I LVrrLrv r\Jr\ rhp
RSR !r rL frrurrnzi^^-
r-rvr ro qu rq {.^^,,^^-l
-'J 'ur'^- rr EvuEr rz( 16 volte Quando il bit ADDEN = 1 sì rileva l'induizzo e si scarica
superiore a quella di lavoro. Quando si riempie RSR e si il buffer di ricezione quando si attiva RSR. menrre se

RCSTA

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

.iffi
ì ::: : :.. ìì .,.t: .: :. . ) i..)):1 iiiit {:r # !:i: ;rt ruu} l
t:
* M5B REGISTRO DI SPOSTAMENTO t5B ll:

I
ffi
r]
l -u
(ax
M ,
RC7/RX/D| .
3 iii ,ri! :rlrl: # # il;ì: r;lil (li} rp ìrll! fi; 4 ù:
- lltl

.rg
[ffi
|i:w

@
I

]rffiltll
ABII-ITAZIONE At
BUFFER RICEVITORE
CARICO

w w
ìì $ì w ìwwi
.zg

INTERRUPT
.rg
BUs DEI DATI

Schema a blocchi del ricevitore dell'USART.

?#'
za 1..,È'#'
éîi:"{ +"iEt i+:;-É + i' :;:t t+ 4.+'í'#t'É'É.
GOfirUNrcAZlOl{l
Un 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 'l failo funzionare in modo asincrono,


SPEN = per attivare I'USART e SYNC = 0 per

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 errore di trama. Se OERR = 1 significa che è stato pro-
ulilizzalo corne b t di parita Il brt CREN abilita la rice- dotto un errore di sovrapposizione.
zione continua dei dati quando vale 1 e la disabilita Nello schema a blocchi del ricevitore dell'USART si
quando vale 0. ll bit SPEN abilita (1) o disabilita (0) la nr,o vedere ilfrrnzionarncntn dei hit dpl rea stro RCSTA.
nort.a spriale SPFN non influisce sL,rl funzionamento in Nl-l +-L-^r,^ ,.i^r fr^,
t\ct d- Lducrrd ucrro- il9uro )vrru "^--^tttiI "^^istri
roLlvrL, rc9l che si
modo asrncrono. utìlizzano nell'USART dei PIC 16F8lX, con le caratteristi-
Quando FERR = 1 indica che e stato prodotto un che piu rilevanti, e la loro struttura interna.

r'ì

"o,gf .s
s

&-ry "&Ì"3
.f
A\ -( r- /lr !ìY
.È-ÈtrD'-Y,'
-/-- e$o e$ù e$ ó"
8Ch PIEI
"{
PSPIE
"at
ADIE RCIE TXIE 55PtE
"*"
CCPr rE TMR2IE TMRilE 0000 0000 0000 0000

0ch PIRI PSPIF ADIF RCIF TXIF ssPrF ccPilF TMRzIF TMRilr 0000 0000 0000 0000

98h TXSIA CSRC TXg TXEN SYNC -- BRGH TRMT TX9D 0000-0r0 0000-0r0
- * - * *RXqD
I8h RCSTA SPEN RXg SREN
U
CREN ADDEN
-FERR
oERR oooo ooox oooo ooox

IAh RCREG Regislro di ricezione dell'USART 0000 0000 0000 0000

I9h TXREG Registro di trosmissione dell'USART 0000 0000 0000 0000


.
99h *sPBRG * Registro generotore di boud - 0000 0000 0000 0000

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;TONI
I'USARî in modo sincrono

Comuni cazione
seriale sincrona
i sono diversi dispositivi e periferiche che
lavorano con iì protocolìo seriale sìncro-
no semiduplex, tipo memorie EEPROM
seriali, convertitori AD e DA, ecc. In quesro
modo ogni elemento puo lavorare come
master o slave.
=--ffi
5. CLOCK .r

lbit sono trasmessi nei due versì tramite la


linea dei dati RC7/RX/DT. ll segnale di clock è sem- [.--i{!-*4
pre generato dal master tram te il pin di uscita
RC6/TX/CK, che nel caso dello slave è un piedino
dr ingresso.
Quando il master trasmette, la ricezione in esso
rimane inibita, e viceversa.
Nel modo sincrono dell'USARI la frequenza
Ricordate che nella comunicazione sincrona, iltra-
di trasferimento dell'rnformazrone è generata dal master
sferimento dei dati è continuo, e ogni blocco di infor-

BUS DEI DATI

A ./g

TXIE
#tr
W *.ffi,o,
INTERRUPT

ffi TX9

TXSTA

Schema a blocchi del trasmettitore dell'USART e struttura interna del reqistro TXSTA.
COII'IUNICAZiIONT
in modo sincrono ,ll

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

lpassi da seguire per rsqrz4qrE


"^^li--^"^ l.ro +"-.-i.,
LroJrr rrrilOl^l€
dell'USART come master in modo sincrono sono i

seg uenti:
RCSTA

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


<ftt tîil trà interna clcl rPoi\lro
sincrono,CSRCalper
RCSTA incaricato del controllo della rtcezione dell'USART.
far lavorare |'USART come master, e il bit SPEN a 1 per
abilitare la porta seriale,
mazione va preceduto da uno o due byte che di solito
sono caratteri ASCII SYNC. 3', Collocare TXIE a 1 se si desidera che si generi
Inoltre nel modo sincrono bìsogna programmare
un interrupt
l'USART per selezionare i parametri di funzionamento,
al termine della trasmissione,
fra cui la frequenza rn baud e il numero di bit della
oarola. che oossono essere B o 9 ecc. 4', TXg è 1 quando la parola è di 9 bit.

50, Porre TXEN a 1 per abilitare la trasmissione,


ll master come trasmettitore utilizza, così come in 60, Caricare il nono bit della parola in TX9D,
modo asincrono, il regìstro TXREG come buffer dei
d,ati e il T\R romp ronistrn di cnnst:monto ll renictro 70, Iniziare Ia trasmissione caricando la prima parola nel
TSR riceve il daio dal TXREG, che non si carrca srno a registro TXREG,
che non è uscito l'ultimo bit dal TSR. AI termine della
trasmissione e rimanendo vuoto il TXREG, si puo
ntrntrrartr rrn interrrrnt se il bit di abilitazìone TXIE vale
1, in questo modo la CPU salta alla routine di rnter- Per controllare ìa ricezione nel modo master si uti-
rupt che torna a caricare il registro TXREG, per conti- lizzano i hit dcl renistrs RCSTA.
nuare immediatamente dopo con la trasmissione del Quando si lavora con parole di 9 bit dobbiamo
dato in serie. porre RX9 a 1 e il nono bit che si riceve si carica
Nella figura riportata in basso nella pagina prece- sul bit RX9D. Con SPEN a 1si abilita la porta
dente, e illustrato lo schema a blocchi del master tra- seriale Con SREN a'1 si abilita il master alla rice-
smettitore, rnsieme alla struttura interna del regrstro zione e con C REN a '1 si permette la rcezrone
TXSTA, i cui bit controliano e monitorizzano questa continua. Quando FERR è a'l si rileva un errore dì
operazrone. trama e con OERR che vale'l l'errore rilevato e dr
Per abilitare la trasmissione si pone TXEN a 1. ll bit sovrascrittura.
TX9 e a 1 quando le parole sono dr 9 bil, deposrtan- Nella figura in alto a sinìstra si fornisce un quadro
do il nono bit in TX9D. Quando SYNC vale 1 sr sceglie con la struttura interna, induizzi e valori che prendo-
il modo sincrono. ll bit CSRC determina in modo sin- no i registri dell'USART in modo sincrono dopo un
crono quando il f unzionamento è in modo master (1) Reset.
o in modo slave (0) Per abilitare la ricezione nel master si pone SREN
Nei primo caso ia f requenza di lavoro la produce il a1 | bit entrano in modo seriale tramite pin il
Generatore di Baud, in funzione del valore carìcato RC7lR)lDT con il fronte dr salrta dell'impulso di clock.
nel registro SPBRG. Quando il bit TRMT vale '1 il regi- Se solo SREN vale 'l si riceve una parola solamente,
stro TSR è vuoto. Infine il bit BRGH seleziona il valore ma se e a 1 anche CREN si ricevono parole in modo
della costante K che interviene nella formula per il cal- consecutivo.
colo della frequenza in baud, visto durante lo studio Ogni volta che si riempie RSR, il valore si trasferi-
del modo asincrono. sce al RCREG.
*cornuNlclzloNl
f'USnRl in modo sincrono
llll
\'""1@*,rrrrrrr,*rrr,ru.,,,,,,,

lpassida seguire nella ricezione sincrona dell'USART


sono i seguenti: Le due differenze piu importanti dello slave e del master
quando lavorano in comunicazione sincrona sono le
seg uenti:
10. Si carica il valore adeguato di X nel registro SPBRG, per
selezionare la frequenza di lavoro, 1'. Lo slave riceve tramite il piedino RC6/T)VCK la fre-
2', Porre il bit SYNC a 1 per il modo sincrono, SPEN a 1 per quenza degli impulsi del clock che arrivano dal
abilitare la porta seriale, CSRC a 1 per far lavorare I'USART master.
come master, 2". È possibile che lo slave stia lavorando mentre il PIC
3', Verificare che: CREN = SREN = 0, si trova in modo Riposo, situazione che si origina
4". dono l'eserrrzione di una istruzione SLEEP.
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.


Per lavorare nel modo Riposo si scrivono due
n:rnlp
t/u,v'L
nol rooictrn TXRFG e dono si eseoUe l'ìstfu-
5', 5e desideriamo realizzare solo la ricezione di una parola
zione SLEEP. Successivamente si trasferisce al registro
imposteremo = 1. Quando si vuole realizzare una
SREN
ricezione continua di parole imposteremo anche CREN a f. TSR la prima parola e si trasmette via seriale.
7'. Al termine della ricezione imposteremo a 1 il flag
Quando termina la trasmissione della prima parola
RCll, producendo un interrupt se avremo posto RCli a L TXIF non viene messo a 1 e la seconda parola passa
da TXREG a TSR
8', 5i legge il registro RCSTA e il RXgD se si lavora con 9 bit,
Dopodiche si porrà TXIF a 1, e se TXIE era stato
9", Verificare se si è prodotto qualche enore nella ricezione, imnnct:tn d
il'rpu)LdLU : 1| ci
>r nrndrtrr:
I,Jruu-, ln intorrrtnt
,.,,,-r. ,, J -',^^i;^/ì
ahÉ' )vE9ilEro
testando i[ valore dei flag FERR e 0ERR.
il microcontroller dal modo Riposo, mandandolo alla
100. 5e si è verificato qualche errore cancellarlo ponendo CREN a 0.
routine di interrupt che inizia all'indirizzo 0004 H
î1". Lettura del registro RCRFG. I nassi da seorrire oer ìa trasmissìone serie srncrona
dplln sl:rio qono iseorrentt.

5l
a\

.o-$*
.oo'.cù- -o*?Ó
-$o-'a\$-
.*$' {Ft' 4 ,o .o+elvÈ- .o$1'.F$=
sa' èo' es' o$o ó" .$o
"*" "*" "*'
9$ -\F"ù -\ts'Or,'
8Ch PIEI PSPIE ADIE RCIE IXIE SSPIE CCPIIE TMR2IE TMRI|E 00000000 00000000
OCh PIRI PSPIF ADIF RCIT TXIF SSPIF CCPIIF TMR2IF TMRilF 0000 0000 0000 0000

98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT-- TX9D 0000 -0r0 0000 -0t0
. .OERR
I8h RCSTA SPEN RX9 SREN CREN ADDEN 'FERR 'RX9D 0000 000x 0000 000x

IAh RCREG Registro di ricezione dell'USART ooo0 0ooo o0oo 0ooo

99h SPBRG Registro generotore di boud oooo oooo 0ooo oooo

t9h *TXREG u Registro di hosmissione dell'USART - 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

I passi per fare in modo che uno slave compia un'o-


perazione di ricezione sono i seguenti:
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. l'. Abilitare la porta seriale ponendo SPEN a 1,

20, Porre CREN = SREN = 0


Porre in modo sincrono
con SYNC a f e in modo slave con CSRC = 1,
3'. Se desideriamo generare un interrupt alla fine della
trasmissione impostiamo TXIE a 1, 20, Se si desidera generare un interrupt al termine della
4". Se vogliamo trasmettere parole di 9 bit ricezione RCIE deve essere a '1.

impostiamo TX9 a 1,
30. Con parole di I bit RX9 vanà 1.
5', La trasmissione si attiva con TXEN a '1,
40. La ricezione si abilita quando RCEN vale L
60, 5e si opera con 9 bit caricheremo il nono in TX9D,
50. Al termine della ricezione RCIF è uguale a 1 e si genera
70, Iniziare la trasmissione caricando i dati in TXREG,
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.
Per fare in modo che lo slave funzioni in ricezione
imposteremo CREN a 1. Se rl PIC è rn modo Riposo, 7". 5i legge il registro RCREG.
quando si riceve ura parola sul "egistro di spostamento
80.5e si è verificato qualche errore si cancella il flag
RSR, al momento di spostarla su RCREG, se erano stati
abrlitati gli interrupt con RCIE = '1, si generera l'interrupt ponendo CREN = 0,

e il microcontroller uscirà dal modo Riposo.

RC7lRX/DT

RCó/TXICK

SCRTTTURA
tl'lT\rhF^
n
| |

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


t
&

íCOInUNICAZIONI
$ Cororteristiche e funzionornenlo del PPI

Com unica zion e parallela

comunica con un pin esterno tramite due flip-flop tipo


D, uno per la lettura e uno per la scrittura. lsegnali di
ll trasferimento dell'informazione in modo parallelo è rontrnlln nermettnno
vL,,,,LLrvl il funzionamento di gp +lin-flnn
consigliato per r dispositivi veloci che si trovano fisica- alla volta, come mostrato nella figura.
mente vicini. oer evitare rumori e interferenze.

Per faciritare ;l collegamento dei sistemi basati su micro-


nrocessore con le r-nertr^'t't'^
_. ilcrLrc ^-'-rr^r^ -^^r stati svi-
Pdroilcrc, )urL
luppati una serie di circuiti integrati specifici, uno dei
piu conosciutL e utilizzati è il PPI 8255, prodotto da
Intel.
F stato nrnnettato
y, vyL LLq Lv nor nrn.oqq^ri ron il hrts dei dati
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, la sua struttura Inter-


Schema sempliftcato che riporta tl controllo delle ltnee della na e
^- ^ l-
la preornarura
^i^!i^-+, sono moslraÎe neìla figura.
^^'+^
pvt La )tavc ^---//^/' tt'^^
't-"^ pataltcta ^ossiedono alcuni mtcrocontroller
tc P PlC.

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


degli svantaggi; la maggiore quantita di linee di cui
neressita srnnone rn costo maooiorp ,,'"yy,.,, e il fatto che le
l:: rffi ffi---;;;
I ' -----+
l nop cr rrrrirri,rnni: il seonale siano così vicine fra di loro ry
da origine a rumori e a interferenze, dovute anche
EtEvoLc {-^^,
-il,^r^,,-+-
cI ,^^-- u.li f unzionamento.
IqvuErrzo
G
*
E
ffir
Nei microcontroller PIC troviamo alcuni modelli che -iix
dispongono di una porta parallela slave implementata
ffilv3^.
nffil
re-l
sul silicio Si tratta dei modelli di PIC che dispongono di m

'W m-
i

w
cinque porte di l/O e che ne dedicano due a supporta-
Íe*.
re questo tipo di comunicazione. La porta D suoporta
le B linee incaricate dei trasferimento dell'informazione
e la porta E le 3linee di controllo necessarie. lsegnali cÍ
di controllo necessari sono RD# (lettura), WR# (scrittu-
ra) e CS# (selezione del chìp). Struttura interna
a blocchi del PPt e predinalura del componente
Ogni linea del bus dei dati del microcontroller

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


v

COMUN'CAziIONI
rd

&

Gcrrcrlleristiche e funzionqrnento del PPI l[


#

é
-.,;tli'

L'interno del PPI e composto fon-


. ud qUattro registri da
-l--^^+-l-^^+^.J-
udr rcr rLdrrrcr rLc
B bit Tre di questi corrispondono con
, idati che entrano ed escono dalle
porte 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'ultimo
spnnalp 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 composta
ll PPI si collega da una parte con le periferiche esterne e dall'altra con la CPU da 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 mettono
PCt INGRESSO
in comunicazione il bus dei dati della
0 PCt USCITA
CPU con i quattro registri del PPl, e le
MODO DI TAVORO sue informazioni si scrivono o si cari-
GRUPPO A (PA+P€Hì
cano su una deìle porte, selezionata
MODO O 0 0
MODO I 0 con le iinee diindrizzo 41 e A0. Se A1
MODO 2 X 0 MoDo 2 = O e A0 = O si accede alla porta A; se
PA INGRESSO I PCH INGRESSC A0 = I e A1 = 0 si accede alla porta B;
0 PA USCITA 0 PCH USCITA se A1 ='1 e A0 = O si accede alla porta
C e se 41 = A0 = 1 si accede al regi-
stro di controllo RC
Quando il bit piiL significativo di RC
si carica conun 1, i restanti bit determtnano il modo lavoro delle tre porte

Scrivendo nel reoisîro di controllo si


può programmare il PPI in modo dina-
mico cioe si nrro modificare il funzio-
CANCELLA O ATTIVA UN namento del PPI durante l'esecuzione
0
BIT DI PC
di un programma, in qualsiasi momen-
SETEZIONE DEt BIT DI PC to I a scriîîrrra del reoistro di controllo
0 0 0 BIT O
I BIT I
e programmazione del PPI permette di
0 I 0 BIT 2 realizzare d ue azion i fondamental i,
i
bit più significativo di RC si
1") Se il
I I t Bfi7 imposta a '1, i 'estanti bit di questo
registro determinano il modo di lavoro
Quando il bit più significativo di RC si carica con uno 0, delie tre norte Fsistono tre modi di
i imanenti determinano per quale delle linee della porta C esce un bit 1 o 0
lavoro: Modo 0. Modo 1 e Modo 2 e
gcolnuNrcAztoNl
ff Gororteristiche e funzionernento del PPI
'li1r

le porte possono funzionare come


innraq<n o rnmo rr(rit:
2") Se si carica uno 0 nel bit piu
cinnifiretivo di RC ihit rimanenti
<or\/nnn
rL,vv, ,v nor
vrl
indir:ro npr nrr:lo
dpllo ìinpo doll: vv,
,Lr vr,,u norte
Lu C esce un
l--i+
ulL i*^^-+-+^
ilrpu)LdLU o- 1I uPvurE
^^^,,"^ o- n
w,
cnme si nrro vedere dall'ultima
figura della pagina precedente.

llPPI ammette tre modì di funzio-


nàmento delle sre norte. ll Modo
0, il Modo 1 e il Modo 2. ll modo
di lavoro selezionato dipende dalle
noriforirho r-ho dovo nrlnt:ro
F<i<tnnn noriforirho passrve, o Diagramma dei collegamenti
"non intelligenti", che non neces- del PPI quando funztona in Modo 0, senza segnali di dialogo
sitano di segnali di dialogo, ad
esempio un insieme di otto diodi LED; altri dispositivi, fra il PPl, le periferiche e la CPU. Possono solo lavora-
definiti "intelligenti" necessitano di segnali di dialogo re in questo modo le porte A e B dato che la porta C
per realizzare itrasferimenti, qualcosa come segnali del fornisce le sue lrnee per supportare i segnali di dialogo
tino "adpsso ti m:ndo un dato" e "il dato e Stato rice- che sono necessarì Quando si utilizza una periferica di
vuto". Di seguito descriveremo il comportamento di ;^^"^..^
il tvtc))ur .t LdrLo
c^ )r ' '^- ^^.+î
-^"'.^ uro ^r-+^ Si attiva il
Pwt Lo Lwr I ut I uqrv,
ognuno dei modi di lavoro: segnale STB# allora il PPI attiva automaticamente un
segnale chiamato IBF (Buffer di Ingresso Pieno) per
Modo 0 avvisare la CPU che c'è un dato da leqqere.
E rl piu semplrce di lutti, dato che
nnn
,iv,, no<ti<ro
YTJL,JTL
<onn:li r{i di:lnnn
con le neriferiche che si conside- RC

rano "non inteìligenti". Ad esem- EEEEEEET


pio, una periferica nor intelligente IBFA
di rnnrpsso e rrn insieme di B inter-
ruttori, e se è di uscita un insieme
di 8 diodi LED.
Dobbiamo programmare
v9rrurru dollo
uLilL tro
LrL 66pfa
pvrLq nar f:rl:
lOllO
^nn1n: PEr
lavorare come Ingresso o come
, ,--,+ î - "1,,^^ A^ aoegualamenle
uSctla, -scrven0o ^A ^.
r bit di RC In questo modo pos-
sono lavorare tutte le porte PA,
PB, PCH e PCL. Nella figura e
tDAto DtSPONtBt[r)
rinnr+r+n
llpul Lolu l^..ham:
lu )Lllqllro dr
ur rnllon:-
LvilLvu INTRB

rnento del PPI nel Modo 0.

Modo 1

ll trasferimento di informazione e
-^^+.^ll-,^,l-i -^^^-li,li,li.l^^^ Srhema deì collegamentt del PPI quando lavora ,n Modo I con due periferiche di inqresso.
LUILrUrrOtU UOr )q9rqil Ur UrCrV9V
funzioneirnenlo del PPI

con la ne.ifprira Nlel N/odo 1 la


porta A e la porta B potevano
funzionare solo con'e ingressi,
aì rnma rrqrite o nor
r_, rJgnt caso
avevano bisogno di tre linee di
controllo, contando anche
quella di nterrupt.
Nel Modo 2 la porta A puo
lavorare in modo bidirezionale
q lin^^ À,
CU
^À tr)lgc
^ci^ò J ll lfc Ul .Ii.1666
Uldrvyv, 661
pLl
cui alla porta B rimangono a
disnosizione solo 3linee libere
sulla porta C, rimanendo limita-
ta a lavorare in Modo 1 .

Quando PA funziona in
\,,1odo 2 come ingresso, utilizza
i segnali IBF# e STB#, mentre se
unziona come uscita uliltzza
f

ACK# Inoltre necessita


OBF# e
delia linea INTR per la possibile
richiesta di interrupt alla CPU.
CollegamenÙ della CPU a due periferiche di uscita tramite tl PPI tavorando in Modo Se la npriferir,a introlgce Un
1

dato in PA si attiva STB# e IBF#


Inoltre in ntteslo modo si nro nrovocare una si pone a 1 automaticamente, in modo che quando la
rirhiesta di in-prrrnt alla CPU mediante il senn,ale CPU legge il dato sr disattiva lBF. Se la CPU scrive un
INTR, per fare in modo che ii segnale sia letto imme- dato in PA si attiva OBF# e quando la periferica racco-
diatamente. Nella figura si mostra lo schema dei col- olie ouesto dato attiva ACK# e si disattiva OBF#
lonemcnti del PPI in Modo 1

rnn vuL noriforirho


LUr' drro pLrrLrrLrrL di
ur IngfeSSO
sulleporteAeB Rc

C)randn
Yss,,vv
lc neriferiche sono EEEEEIII
^li ,,.-;+-
ur u)LrLo, i| .^^^-li
)E9f rdil ..Ji
ur ,.li-l^^^
uroru9u IPBMODOI J I: I

sono dìfferenti, anche se sono =iElt-ó_"0:8.é---0,*:*--


scmnre nestiti d;ìll,ì norta C. ln iPsiiGnEreìi
"1*e:úsín--l-ql-
questo caso uno dei segnali si lPC2-PCO |NGRESSOÌ l:
chiama OBF#, e il PPI lo attiva jt9?:?_9o_u..-s!_!I-4_.-r9:

:r.tomatiramentc nrrandO la
aPl I (rriyp rrn d:tn 666 l: nnrl-r TNTRA{-
|'JLi lo Pwl tc
A o B l'alîro sennale si chiama
ACK# e lo a1 liva la neriferica di
rcrit:
ruJLrLo rEvyq lr
n1:ndnruw lonne
Yuor ld nnr+r
l.iul Ld, or-7
Il'nnor;zrnno
vvqr qzrvrrE lvra^m^^rt) l: ut)o-
rvvt Lq to rlic:-

bilitazione automatica di OBF#.

Modo 2
In questo modo lavoro puo solo
tut,^-i^^
{, -"^ r- ^^.+- A
t4tvt totE to PUt Lo / Che e
)uPPUr Ld Ld ,l-
-,,^^^/+î+a ,^ li^^^
-i^^rr-.luc
Ud Lil ,l^,1-
f il rcc uuild

nnrt:Lo f- ,.Ji-l^^^ Schema dei collegamenti fra la CPU e una periferica di tngresso/uscita tramite ìl PPI in Modo 2
PUr ! nor ne<tiro il
Psr vq)u q il uldlugu
COMUN'CAziTONI
Altre regole dellc comuniccrzione seriqle

Comunicazione
parallela
fluenzano molto questo tipo di trasferimento, e il moti-
vo orincioale risiede nel fatto che si utilizza il "modo co-
La comunicazione dei dati in serie secondo la normati- mune", che consiste nell'invìare segnali il cui valore ha
va RS-232-C fu rntrodotta nel 1962, e permette il tra- come riferimento la massa. quindi costantemente in-
sferimento dei dati fra un trasmettitore e un ricevitore. fluenzati da disturbi.
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- Le restrizioni della comunicazione RS-232-C hanno da-
cia R5-232-C, secondo le norme dell'ElA dell'anno to luogo allo sviluppo di nuove norme, destinate a co-
1969. Anche se questo standard è ancora abbastanza prire aree specifiche. Così ad esempio l'ultima revisione
diffuso, ha una serìe di limitazioni che impediscono la della norma RS-232-C, chiamata EIA-232-F, permette la
-'.- dpfillLdZIUlltr
)Ud -^^ri---;^^^ i^ -rlti camni
lll lllUrt, Lul fra esse ricordiamo: comunicazione fra due elementi ad una distanza di 1 5
1u. La velocità massima è limitata a 20 Kbits/s, il che metri con una veìocìtà massima di 19,2 KbiVs.
ne impedisce l'uso nelle applicazioni dove sia necessa- Nella norma EIA-423-B l'emettitore lavora in modo
rio trasferire grandi quantità di dati. comune, pero il ricevitore lo fa in modo differenziale, che
2". La distanza massima fra l'emettitore ed il ricevi- praticamente annulla gli effetti dovuti al rumore e alle in-
tore è di 15 metri. terferenze ll modo differenziale verrà spiegato più avan-
3u, Nel trasferimento possono essere coinvolti solo ti, pero fondamentalmente e basato sulla trasmissione di
un trasmettitore e un ricevitore. sennaìi r^omp niffprenz: di drrp tonsioni al nosto di una
4". ll rumore e le interferenze elettromaqnetiche in- 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-
)LOt t4O mî..ima
.+an?r I ro))il tO ^,,À Oarrivare a 1200
PUW
metri con una velocità di 1 KbiVs. Se
-i ^r^.,- r-
)t cruvo ro {-^^, r4o .li
^^--
r EvuEr L trasmissione

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
t t^- t:^:-- --A^A , . ^^ / ^^.+^Ld .)f/^,; /dr- A^l rDa
-l^ uí
vt to Ltl)ltd )( / /cud LUr \
IJUI
descritte in modo più approfondito.
COMUN)CAZ;TONI
Ahre regole dellcl comunic.tzione serieile

+6v i L'obiettivo di una buona norma


SEGNATE CON
DISTURBO
ì
I c^ +rtcÍar'rra.l.+i
Ll d)lcrJrc udLr d. +"^^,,^^,-
||cLluc||Ló ^l^
etc-
l
SULIA TIN:A +2Vìj vata fra punti molto distanti. In
OV::: ambiente industriale con alti li-
velli di rumore e interferenze, e
.)

, dirf icile far convivere i due para-


-*-óy-: matri
rrrL rr I nrinrin:li.
vr il rlrvoil.
fronr,^h-r
ttcguE|4o c^ ut-
SEGNATE CON : ^i
DISTURBO
i stanza. Dato che la normativa
SUUATTRA TINEA
+2Y i R5-232-C non raggiunge questo
obiettivo sono state sviluppate
norme che utilizzano il modo
differenziale invece del modo
La differenza di potenziale fra le due ltnee eltmtna le interferenze comune.
Nel modo comune, i livelli logi-
ri alto e hasso che r,rnoresentano i
,- ,"Y|
bit dei dati e di comando, sono
COPPIA determinati dalta tensrone esisten-
îe srrlla linea risnetto alla massa
SEGNALE SEGNALE
DA INVIARE
comune. Nel modo differenziale, i
RICEVUTO
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-
Collegamento di un trasmettitore e di un ricevitore in modo differenziale more influenza in modo uguale le
,, ,-J {"-
drro linoo l: nlifforonz: ^--^ t^
il d e>>e tu
annulla e lo elimina, come si puo
ttorloro d:ll: f inrrr:
La comunicazione in modo dif-
ferenziale di un trasmettitore e di
VA rrn rirOri lnrpL O r:nnro<^n+r+a Vld-
L iuvprLrqlrLoLo ^.a
SEGNALE ficamente con la simbologia im-
TRASMESSO. - nlomont:i: noll: f inr rrr ll cnnn r
Prsr r rqr rLo.o r rqilo r 9 u r o. ll )c9l ld-
le da inviare e il segnale ricevu'to
possono essere di livello TTL, do-
VB
po i due dispositivi trasmettono e
SEGNALE
ricevono nresta informazione in
TRASMESSO
modo differenziale tramite i due
r:vi A e R rhe nrondqpl6 il nome
,.li
ur -^^^;- +,^,i-+-+-
LUPVTO LVVr)LOLd.
VA-VB I segnali sui due cavi cel modo
SEGNATE differenziale sono invertiti (notate
RICEVUTO
i cerchietti) e la sottrazione fra lo-
ro non solo azzera il rumore e le
jnterferenze, ma raddoppia il li-
vello del segnale risultante, come
<i nrrn riodoro nrrfir:mnn+n nnllr
)r Puu vcucrq 9roILoItEILg ttEilo
ll segnale lrasmes-so sui due cavi vtene sottratto per ottenere ìl segnale rìcevulo senza rumore
finrrr:

.*'!r:::]::*tÍ1r1111l1irlÍrììÌììì:ììùìììììììììlilldR&!]lli]!]!]!ffiss::ì:ì:flllsÌùù|iiìì!ììu
COmUNIC;AZIONl
Altre regole deller comuniceizione seriale

À/-^^i^-^ À l- li-+-
vlaggrore e la 0rsîanza
cne -^^---
-t ^ Separa l,^*^++i+^
I emerrTore e
il ricevitore, minore sara
SEGNATE SEGNALE
DA INVIARE RICEVUTO
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 puo


arrivare a 10 MbiVs. Con
l'ohietîivo di noler colle-
gare f ra loro vari dispositi-
vi in rete, è necessario che
la sezione di trasmissione
di ogni dispositivo sia ad
-l+- i*^^-J^^--
dlrd ^,,-ndO
llrlpcucr tLot 9uo
Collegamento fra due dispositivi che utilizzano la norma RS-422. non e in funzione. In que-
sto modo si puo trasmet-
tere con un solo dispositivo e averne un rnsieme di 10
Un collegamento secondo la norma RS-422 necessita di ìn ascolto.
cinorre linee o cavi due ner trasmettere l'informazione
in modo differenziale, altri due per riceverla nello stes-
so modo e l'rrlîima ner la massa comune. La tensione E molto simile alla RS-422, di seguito riportiamo alcu-
di ogni cavo in modo comune può essere compresa fra ne fra le orincioali differenze:
+7 V e -7 V risnetto a massa. 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


-^ sr
se -^^ti-- +.^
-i appilca rra essr
^--i una
LCtt)tuttc +--
+^^-i^^^ ,11 ,,v E^ - 7 V,
ild îtz
la corrente massima che
LUtd -^.\
-1.-^t-
L[
t^[^.1^-^ o^ 250
)Otd il il ct tutc

mA ner evitare che si dan-


neggino.
4u. ll trasmettrtore e il ri-
cevitore, nella normativa
RS-485, dispongono di un
segnale di ENABLE che
abilita o disabilita ilfunzio-
n:mAntn In nrroctn mgl6
i dispositivi che non stanno
emettendo, o ricevendo,
possono essere scollegati
dalla rete.
5u l'imnedenza minima
di innresso deve essere SU-
Colleoamento di vari disaositivi RS-485 in rete
periore a 10,56 KQ.
:lttt

COMUNICAZ;IONI l$

Altre regole deller comuniceizione serierle


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

PARAMETRO RS-232*C RS-422 ì


RS-485
Mossimo distonzo (metri! t5 I.200 | t.200
Mossimo velocifù {Kbit/s) 20 to.ooo ,
ro.ooo
Modo di funzionomento COMUNE DIFFERENZIATE . DIFFERENZIAIE
Numero emeltitori/ricevitori r/r llo
| ,,
r/32
Mossimo lensione di uscito t25V -O,25V +óV . -7 +l2Y
Sensibililò di ingresso del ricevitore r3v !2OOmV . !2OOmV
Resislenzq di ingresso del ricevitore 3k-7k 4k mín t l2k min

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

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


Po che la distanza che permette questa rete puo supe- dini che permette dr soddisfare le norme RS-485 e RS-
L)) o l: rr À rinnr+:+r nnllr {in"r: rinrndnt-
rare il chilometro, è molto adatta alle installazioni indu- -.-,ri niodin:f
r,.--,,.-.*,d1;.r C llPUl toLO Ilclro llVUlu rrVrvuvL
1

striali per la raccolta dei dati e l'attivazione di differenti ta qur sotto.


attuatori. L'ADM1485 è un trasmettitore/ricevitore in modo
Se non si utilizzano ripetitori intermedi si possono difforonzi:lc nrnntrttato npr l':rronni.emonto alle nof-
v!'IuLLv|/v
collegare sino a 32 unita di carico, con
due 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 Vcc
mA onnrna |'imnedpnza massima di in-
gresso sara superiore a 10,56 Kf2, in mo- ENABLE B
do che applicando all'ingresso una ten-
sione di 12 V, la corrente non sia supe-
riore a 'l mA.
ENABLE A
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 nella
rete si nuo àrrmpntarp in modo conside-
revole con I'ulilizzo di ripetitori e ricevito-
.,..1 -l+- i-^^,.i^^-- Piedinatura del circuito integrato ADM14B5
I ou otLo il |PguEt t4o.
Nella tabella in alto si pone in rilievo la
dif'erenza fra i diversi parametri delle norme RS-232, me RS-485 e RS-422. Ognuna delle sue sezioni si puo
RS-422 e RS-485. abilitare in modo indipendente con il segnale ENABLE.
-,,^"- LVI I Ur I .-^^^
|LOVVTO ri tensiono
lqllVE Ur rnmnrpqo
LCr rjrvr rs LUr rrPrq)v frlra +1 2 V e
-7 V Permette velocita di trasferimento che arrivano si-
Dato il diffuso ulilizzo di dispositivi accoppiati allo stan- no a 30 MbiVs, e si alimenta con una tensione unica da
dard RS-485, i costruttori di circuit, integrati, dispongono +5 VDC. ll tempo di propagazione del trasmettitore è di
di una linea di prodotti destinati a risolvere l'adattamen- '10 ns e quello del ricevitore di 25 ns Permette la con-
to dei segnali TTUCN/OS a questa normativa, e uno dei nessione diretta di 32 dispositivi in rete, anche se e pos-
componenti piu rappresentativi è il modello ADN/ 1485 di sibile att;vare un solo trasmettrtore per volta.
F

$COÍNUN]CAZIONI
lnternel

Indi rizzi utili di Internet

blrp/ri',erlkee.respana -Piog hinr


Sezione rn cui si pubblicano informazioni relative alla pro-
grammazione di microcontroller, oltre a varie utility ed
f Ìii: /lvwv,,l.cs ,ri"i r lcqr-trinlíac\ùa s ila iqaÌe.oigiccri[r/ccinp rcbct'cs.']t sc esempi di programmazione. In questo momento possia-
iiil ilr.v marigaie orqisli/sct.eleiìfof cs Das cs mo trovare un manuale di JAL (.Just Another Language),
iiitl./iir'i,.'r,', fcrri. i'-"c.aà1:aRR/afci'ri,esll99-c/aiiìÌ'ci.tiri un linguaggio di programmazione di alto ìivello per i

irttn',rtp rrnu.ectr tr'^lDlclireliai cl/fa,;i'C0\lP-Al'iSWlRSr microcontroller PIC che assomiglia molto al Pascal.
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: n it p ://,mr,lru a l-r.vr li i a rn s. co mr'wii 5gn r/sta rc pf a q htrii


.è 1 :-i:..'I1-". .' :,: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
litp /ib*e. re be. k'l 2. wr;. u:/'J:v,scre:'l ecl9B. h tm ì costruzione di microrobot.
I ru9ELLr rnn
Prnno-tri !Vrr Ionn uo'rd l\4îrchal'
LE9u .l:ll, lvldl)l loll IIn vnrci+',
ullìvEl)lLy.

t,&À-r' J_ld ses. rtu,f,ù jd""G "f ,:-i - l iE


fr *d I r:q i,k i*.{: r,..1*.ì lbs n"'
:
iirJrlvirir.v;in-cu-llll-954heinll| !nèa!
Ft ": 1::t"lt ?""-'"* :' Universidad Politecnica de Madrid.
llavi-r Creeh Èl+*lr*tîrT i -::, . Prujetts 199S99
-.;ù *::# :--*
si$d.r!ùJNFd.!{€Jau àni.;.. -:i;*
,!útÍtNlùrín'r'g?5.espù3!n*tuùjJ:!úrúd!ds*!!ir.drìraùft
lEjrG 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È lebtDi
ijj_# *:::* t:::.* r:'*

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

F&.---.+-

*foÉ
t:Ll.
.- ,,

#
trTTB

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

Progetto di intelligenza artrficiale dell'Universita di


Ch icago
r-;ji;:'', . ;';i;".;r-,:-:'
-ì i: :1,",.,'!i. r, .--:..!1.:r i-,,,::: Ki'fs per la costruzrone di robot, dal livello scolastrco
Progetti per iÌ PlC. secondario al lìvello universitario.
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. robot.com/home/


i

Sistemi robotici reali.

htip://www.screncekrts. comirobots htm


Kits di robot per differenti livelli.

hitp ://rvwv;. robotstore. com


Offerta 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.
http //www.joker-robotics corn/

hilp.//wwrr;. lynxm otion. com/


Kits di robot e braccia robotiche.

hiip.íwrnriv. m crobotica. es/iower. hinr


r

htÌp.//www. m icrobotica es/f lota htm


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

hiip./www. rciloÌ--|ectran ics cc. u kl


Svariati modelli di moduli: ad ultrasuoni, scrittori di PIC,
ecc. Componenti: servomotori, sensori, ecc.

[t.q#wwv', ? qpllI_$/clal
Gruppo di robotica di Mataro. EUPN/t.
http./1rr,;vr."rrr sia in inl
0se n c iase cc
Prodotti di robotica, manuali ecc basati sul Basic
, .,i./l . . '. Lr.i _. Oul !
..

Stamp di Parallax. Pagina di un gruppo con diverse cose e links.


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

$
COTI'IUN)CAZiIONI q#,9, .?p***sffiè*,i,
ry
,
lnlernel @
F

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


lstituto di robotica di Carnegie Mellon.

http :l/www. cs. u ch ca go. ed uiresea rch/a


i 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

hitp.//vurnrw d pr g ar El
Club 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 -Ì, / .,..i ,-A:.i!. - - rC ó.:C/'PU--2iC i '.- :

Universita o Circi^nati Accesso condizionato da autorizzazione


Università di Almería

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

firp;épsis-{$-e5
Unjversità 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
LU)d LUt t)l)LC rd ^r^^'tmmazione
Pru9rc struttlrata.

lit+llwww. rnlor uva e


59_!1!a
Argomentr di un corso di introduzione alla program-
mazione strutturata.
COMUNICAzlTONI

+e6'+..jlJà A&!q* jlrd6 Ílt@ J:1'J:::'J+g


*-l pr t* !s*. - Jl I i3L^i@ rtuÈ +@À J ;j-J-i:,:rg
!*lelqilft{ry"I1ry^frt.q'*h,tulffi
*s!Me*-*.. :....-..,.--* -*-
-*
:r:.'::i:---:--"---.-i-e-l:-::.:.::-.9**".*:*:*.:*"-,-"q"-...:,:-:.:.,.-,..-"..""*"=-"""-.--..---.-...-- -

pt*Ff0rfajnèr.. :r{la {resè1al r


rJ9 -+

*ffiffiffi*ffi*"msw-wm à
SM1gsqqrye
iÉ+ f +€*ttèÉ +E SÈs*las€r:*$: problM ronrlels el dsío,ii iìeoúos ìmhcae ied!únér,le L iegbndaddil
púa @@l
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:
@t
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 @@t
@ . Sé.ur€ DarórEncodèÈ/OecÒder5)
/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 i@ . BlSCAil LIN USB
@
É*!ff!É.@"._ e**irery
Programacié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 r
cî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
http.//www. microch p.com i

ia nrftEFiÈ3c!6É ÉfiÈtg €-éaég!9-.: iodrkodo Ì0 dhs dù0, ùbe nmflmtrs $È cada!.ogmÀ rodms u oo,tùI, ù,rmido Costruttore dei microcontroller PlC.
progrmd 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

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

http ://www. o uc. c l/cu rso d ist/cbc/textos/teo rial


lonnr re t html
Accesso condizionato da auforizzazione partire dall'in-
àirizza (onrrénto'

http.//puc.cl
Informazioni complete sui linguaggi di alto e basso lìvel-
lo, programmazione strutturata, struttura di un lin-
guaggio.

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


120S.htm http ://www. a rroweu ro pe. conn/
Interessante pagina dove sì illustra un corso su un lin- Distributore di prodotti per PIC in Europa.
guaggio di programmazione strutturata, tenuto dal
professor Carlos A. Diaz Aponte. http ://www. pa ra laxi nc. co m/
I

Strumenti di sviluppo per il BASIC Stamp, basati sul PlC.


http.//www. itl p. ed u. mx/p ub I i caltuto ri a les/pasca llu 1 _ 1 _
4.html http ://www. usm cro. com/
si ri i

Descrive le strutture di programmazione più comuni. Azienda che produce strumenti di sviluppo per micro-
controller PlC.
http://mailweb pue udIap mxi -asan clez/is15A/rs/19
.htm http.//www. rentron. com/
Accesso condizionato da password. Tutti i passaggi per Strumenti per il PlC.
rcalizzare un programma
http ://www. control led.com/pic. html
http:l/www. a bcdatos. com/tutoria ies/of imatica. htm l_ Lista di induizzi dr aziende fornitricr di prodotti relativi al
ln questo sito si puo trovare un corso di metodologia PIC.
della programmazione inerente alle strutture, agli
operatori ecc., che tratta sia gli aspetti teorici sia quel- http://www.vmdesi g n.com/
li pratici. Simulatore di microcontroller.

Potrebbero piacerti anche