ltt ili
ltl 11u
uN
COMUNICAzlIONI Presenlozione
,tll,,
Comuni cazione seriale
e parallela processori ricevono le istruzionì dal programma in memoria, le eseguono gestendo i dati che hanno funzione di operandi e che arriva-
LINEA DEI DATI
no dalla memoria dei dat o dalle penferiche
di ingresso, infine generano irisultati
che
saranno scritti nella memoria o inviati alle periferiche di uscita. In questo continuo eseguirsi di istruzioni, il trasferimento dei dati e una parte vitale del p
rocesso.
Fondamentalmente il trasferimento di informazioni fra 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 comunicazione, e il ricevitore lo raccoglie. Normalmente, per sincronizzare il momento della trasmissione con quel-
IINEA DI CLOCK
Nella comunicazrone seriale sincrona,
ogni volLa che tl trasmetiltore deposita un bit sulla linea dei dati e generato un impulso di clock
A^+^-^;^--^ t- -^--^l+a ^^- UCLVT ttilrtalg /o lcLlu,(r PCr
lo della
del medesimo dal ricevitore.
si
uti tzza una linea ausiliaria di clock, in cuisitrasmette un impulso di clock ognivolta 't-^ c^ prc)c|Lc ' '^'r-rorrrazione ^'^'^^+^ uìr ilrl valida sulla linea dei Lrtr
ricezione,
al:tr I LvrrrL anmA rupprrrrrrLdtU r:nnro<onta+n in lll 1in, ìl9Uld. uuL 'rr
BUS DEI DATI E DELLE ISTRUZIONI
Per eSeOuire le islrutrOni.
?f ,M\tt*r',/:/a,ta*/a//at/////z
jf nrora,<nro seamhia îonfíaudmente infOfmaZjOni
COn
jl
reStO
del Sistema
0 g
COMUNICAZIONI
&
Presentcrzione
ta
i È t.l
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,
r trr 'jl
DATO
_t #l K.
ffir
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 cui la velocità di trasferimento dell'informaztone In modo seriale è fortemente condizionata dalla tecnologia 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 guc)Ld nrracl-: d' .rrhitottrrr: vdlltdugru ur -' ".-
rnqj comnli.o c À:in ud(u -'' ' 'r"\ r o puliassicura la dalla buona immunità al rumore, che ,.J^i uoLr -izld ucl ^l-+i c^ uro rrovninro lrtnnhazza di tr:-
La comunicazione parallela e piu rapida di queila seriale, dato che con ogni impulso di clock si trasferiscono piu bit. Per contro e più complessa da
gestire e la linea di collegamento e piu cara, dato che ci sono prù fili da collegare. lnoltre la vicinanza fra le linee dei dati la rende piu vulnerabile aì rumore e alle interferenze, riducendo la distanza utile di comunicazione e la sicurezza nell'interscambio dei dati
,
sm tssrone.
Nella comunicazione parallela il trasmett tore e il ricevitore sono rolleoaf i da rrn hrrs dei ..1-+i -^*^^-+^ ud +-^+ rdnre oaL, compo5ro -l-
LINEA DEI DATI
linpp nrr,rnti hit ha il hvto rnn rr ri si sta l:vorando. 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 sincronizzazione fra la trasmissione e la ricezione.
Nella comunicazione seriale sincrona, il dispositivo che funziona come master genera gli impulsi di clock che determinano I'invio e la ricezione di ogni bit.
;@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
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^ '.li',^".^ norme ^e metool, conoscluoanoo l,ruogo d orverse casr, -n+nali protocolli. ti con il nome di I microcontroller impiegano soprattutto quattro trpi di comunicazione seriale, che saranno descritti in seguito 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 À.-l-+--i^-.^^- ro E ^l-ll- p[eS€fiZa " O aSSenZa del Segnale di uoLo uorro d)rrLrur
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 trasmettitore che il ricevitore devono essere accoroatt nel momento di depositare e ricevere l'informazione. Per questo rl trasferimento si realizza a una f requenza normalizzala ì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 npnor:t.ìro indinendente come si nrro vedere dalla ,,,vil./Ll Lv,! figura. I diversi protocolli esistenti utilizzano differenti strategie di comunicazione, che permettono loro di ottimizzare differenti caratteristiche, specializzandol i ner risolvere determrnate situazioni. Analizzeremo le loro proprieta, insieme ai vantaggi e agli svantaggt.
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. ,-.
ffir ffir
I
L; -F&
E
€s CONTROLLO
Neila comunicazione parallela
il master governa il trasferrmento mediante tre linee di controllo
Nella famiglia PIC 1687X, ci sono dei controllori con una -l-"^ - R utL ^^'+hit rmnlompnt.rt,a srlicio t-_ nor it.tptEt |EttLoLo qrrl )ut -..._.-, POtOilEtO )tCVC d u PUt LO ^-'-ll^l-
supportare una comunicazione parallela bidirezionale con altri dispositivi compatrbilr. Oltre alle otto linee del 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 comunicazione.
Quando il master attiva i segnali di co-trcllo RD e CS, legge te rnformaz:oni che lo slave deposita srrila linea dei dati. Se il master attiva segnali di controllo WR e CS, deposita 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.ali
leia e mo'to p .r ve oce della seriale,
Nella fotografia vecltamo un PC con ie periferrche cla.ssiche iastiera, mcuse e stampante. I prtmi due normalmente con'tunrcano tn ncdo senale mentre la sfampante di solito t.tirltzza la parta parallela.
gli rnconvenientr dati dalla sua comoless.la. dai sr-,c cosîo e calia sensib ta a rumore e.rile rte"e.eîze, la i'endono scons g1ìab le in moite crrcostanze.
COMUNrcAztONI
It bus lzCl (r) u
sviluppato dalla Philips Corporation per coprire le proprie necessità nell'implementazione di elettrodomestici e di diversi prodotti elettronici, che avevano bisogno di un'elevata ìnterconnessione fra i numerosi circuiti inte-
nicazione fra loro gli elementi che sono collegati, più una massa comune. Una ìinea bidirezionale denominata SDA, trasferisce i bit di informazione in serie, e un'altra denominata SCL, supporta gli impulsi del clock. Uno dei dispositivr è costantemente collegato
grati che richiedevano le schede PCB. ll nome l2C significa 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-
al bus, con funzioni di master, mentre irestanti hanno funzione di slave. Al master compete di determinare le caratteristiche del trasferimento e di generare gli impulsi del clock sulla linea SCL, che è unidirezionale.
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
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 400 Kbps.
Nel protocollo l2C ad ogni slave corrisponde un indirizzo, che è utilizzato dal master quando intende comunicare con uno di essi. Per questo motivo, quando il master inizia la comunicazione con lo slave, invia l'indirizzo del medesimo e dopo specifica se vuole leggerlo o scriverlo. In alcuni dispositivi, il master, dopo queste
informazioni ne deve aggiungere altre, ad esempio se desidera leggere una memoria dovrà indicare quanti indirizzi e quale di questi è il primo; infine si trasferiscono i dati. Tutti i dati o comandi che si trasmettono con il bus 12C devono avere la lunghezza di un byte, non ci sono limiti 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 riconoscimento di un byte, provoca l'interruzione di tutto il trasferimento.
Ci sono microcontroller come il
PlC16FB7X, che
contengono scritto sul silicio il protocollo l2C. Per il loro funzionamento e sufficiente programmare adeguatamente i registri dì controllo, e inviare ad un registro 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 utrlizzare il bus l2C riservando solamente due piedini per emulare le linee SDA e SCL, e mediante le routines adei
n, rr{n 9UOLE,
+rî.'-^++^r^ hit LtO)|tCLLEtC U ^ rirevere rrlqVErE UrL s|lnnorlSndO )UpVWrl
Via
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-
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//#). Dopo la condizione di STARI gli slave pongono in
rie drspongono di famiglie di dispositivi adattabili al bus l2C: in questo modo, abbiamo a disposizione memorie SRAM, 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
alta impedenza il pìedino SDA, funzionando come rice-
:
microcontroller master e ampliare le sue risorse interne,
comej||ustratone||afiguradel|apaginaprecedente.
t.ì !::ij''i'i: ,.i,, ,,.,..: 'i'i: .:...;.,.iti,t:, |lmasteriniziaeterminatuttiitrasferimenti.Perdare ,1
1..
iritf
i',:
I'ordine di inizio, genera la condizione di start, che consiste nel produrre un fronte di discesa sulla linea SDA. mentre la linea SCL mantiene il livello alto. Per concludere un trasferimento genera la condizione di stop, che consiste nel produrre un fronte di salita sulla linea SDA, mantenendo a livello alto la linea SCL, come possiamo vedere nella figura. ll primo byte di un trasferimento contiene l'indirizzo dello slave con cui il master vuole stabilire la comunicazione. In questo caso si ufilizza un indirizzo di sette
.:.,:,:
',.:'
,
',
vrtori e restando in attesa di ricevere I'indirizzo dal master. Questi invia bit tramite la linea SDA, al ritmo degli impulsi del clock, generati in SCL. ll bit del dato deve rimanere stabile durante i fronti di SCL, in modo che gli slave possano interpretarlo correttamente. Come possiamo osservare nella figura, nel primo byte il master funziona come trasmettitore, e dopo la condizione di SIART invia sette bit di indirizzo e un bit finale di R //#, al ritmo degli otto primi impulsi di clock presenti sulla linea SCL. Inoltre genera un nono impulso di clock, in modo che lo slave a cui si è fatto accesso ponga a livello basso la linea SDA, come riconoscimento della ricezione del byte (ACK#). In questo nono impulso di clock, il master funziona come ricevitore. Nel primo byte del trasferimento, gli slave che funzionano come ricevitori mantengono la linea SDA in alta impedenza, in attesa di ricevere l'informazione dal 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:.
"t:".,
I
f,'":,'
l' É
t:; g,i
fg
È
*-t ;:t: iì
ril,:* +e
+Í'
;:::i
!;z +a
l;, I
jj;''{ì
COMUNICAZIONI
MASTER RICEVITORE STAVE TRASMETTITORE CHE PONE SDA O
-
sDA
f
-U:f
",rl/ll
coNDlztoNE
d3
IMPULSI DI CTOCK
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 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 formato che ulilizza 10 bit per gli indirizzi, utìlizzando i due primi byte del trasferimento per specificarli, così come rappresentato nella fìgura.
I"
BYTE
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.
2"
Quando I'indirizzo ha il formato a 10 bit, il master lo rnvia nei primi due byte del trasferrmento.
BYTE
ì 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
mentato sul chip, e per gestirlo bisogna rìservare due nicdini à nrpsto comnito e realizzare le routines software necessarie oer fare in modo che le informazioni 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
il
protocollo del bus 12C implementato sul chìp, e la sua gestione si realizza programmando i bit di alcuni registri. Questo è il caso dei fratelli maggiori del PlC16tB4, ossia iPlC16FB7X. ll PlC16FB4 non ha il bus l2C imple-
f
dei suoi piedini, RC3TSCK/SCL e
BUS INTERNO DEI DATI
8\
tM 8\
TETTURA
8\
RC4/SDl/SDA. muìtif unzione
rY
:ltre rosp
mG 5Ct
(Rc4)
m
rl
sono
e f ra
le
nossono rúilizzalt ner
essere supportare i trasferimenti del bus l2C tramìte il microcontroller ctocco r-he nro pssere programmato in modo da funzionare come masteroslave,eper indirizzi da 7 o da 'lO
'.RTTTURA
StNCRONTSMO
(Rca)
il
Wt'ctocK
bit ll blocco che contiene l'hardware del PIC
@
destinato al bus l2C chiama
SDA
sr
SSP.
C'è un bit (SSPEN) nel registro SSPCON
M
che quando rNDrRrzzo COMPARATO
viene
messo 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 ATTIVA/DISATTIVA
BITSEP
Questi piedini della nnrte C devonn essere nrcredpntpmente conf i-
gurati come Struttura generale dei registri dei PlCl 6FB7X incailcata di controllare itrasferimenti nel modo l2C.
ingressi
scrivendo i bit corrispondpnti dol rpn istrn TR ISC .
COfUIUNTCAZIONI lnplemenfcrzione del bus l2C ss silicio Per controllare il modulo SSP nel modo l2C abbiamo a disoosizione sei reoistri:
microcontroller. Di seguito riportiamo r tre modi principali, 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
e da oarallela a seriale.
Le varianti ammesse
all'interno del modo master, con
i
relativi codici, sono riportate nella tabella
SSPSIAT: Registro di stato.
S5PC0N2I Registro ausiliario di controllo.
r^^^ rvvv
Modo master bus l2C. Frequenza = Fosc/4*(55pADD+l).
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 contiene il dato che deve essere trasmesso, o che deve essere 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, trasferisce l'informazione al SSPBUFF e si attiva ilflag SSPIF. Se si riceve un altro byte in SSPR prima che la CPU abbia letto if SSPBUFF, si attiva il flag di overflow SSPOV che è il bit 6 di SSPCON. ll regrstro SSPADD contiene l'indirizzo dello slave. Quando si utilizzano indirizzi da 10 bit, il byte alto dell'indirizzo contiene idue bit piu significatì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 bit e riportata nella figura
quattro bit meno significativi di SSPCON, SSPM3 SSPMO, servono per selezionare il modo di lavoro del I
Per attivare il modulo SSP e configurare i piedini RC3/SCL e RC4/SDA per iltrasferimento l2C, dobbiamo scrivere SSPEN
ssPCO,ry
'1
RC3 e RC4
funzionano come l/O digitali. Se si pone a livolli ilvEril di ur nrracti vuc)rr
O il bit CKP i rnn{inlr:nn ca.^n.ln niodini il ci )t Lwt il t9utqt tu )qLUt tuu la tE cnari )PEL|vrqurr
fiche l2C e si attiva i clock nel modo slave. SSPOV e il flag 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 informazione ricevuta, ll bit WCOL del registro SSPCON è un rilevatore di collisione in scrittura, e quando vale 1 significa che c'è stato un tentatìvo di scrivere SSPBUFF senza nraraAnn+a nrim: :iror lottn rELLU l'infnr*î-i^n^ rililuIlldzlur lu PTCLUUUI lLc, Prrro ovqr
nnllr Orroctn <trruLLurq rttr rr: ilrrqr intorn: 6jp66+r+r q9r)ru, l:rq rrr rrq a !u )Lr E rrPwr LoLo llcllo vuc)Lv roni<trn
figura, permette la iettura di tuttl i suoi bit ma solo drre nrrrsionifir,atirri nossono essere scritti, Contiene flag che ci informano sullo stato del trasferimento dei
i
i
suoi dati.
REGISTRO SSPCON
SIruIlurd interna del regrstro di controllo
= . Se SSPEN = 0, le linee
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ì controllo dei fronti di salita e di discesa è disabilitato (Standard Speed Mode), e vale 0 quando detto controllo è abilitato (High Speed Mode). CKE seleziona i livelli delle linee SDA e SCL nel modo master o multi-
rnmniti eloi hi+ .li qqPanNl? cnnn i conrrpnf i'
I r!v,,,v,rl
ACKSÍAÎ Quando
si pone a
I
indica se ha ricevuto un bit di riconoscimento
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 quando 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'indirizzo, se vaìe 1 è da 10 bit, mentre se vale 0 e da
f
RCEN: Si pone a
RSEN: 5i pone a
btî.
f
per abilitare il master
in modo ricezione.
I
per ripetere la condizione di Start.
Infine il bit BF (Buffer pieno) si pone a 1 quando c'è un dato nel registro SPBUFF.
icui bit si possono Reset orendono tutti il
È un registro di controllo ausiliario,
lpnnere L p srrivere e dono ,rY:r!, valore O.
rn
Questo modo di lavoro si attiva scrivendo nel registro SSPCON il biî SSPEN = 1 . Dopo aver realtzzato questa nnarrzinno vPLru4,v,
l'rrionto di<nnno di 6 ,(L v,J|Jv"s v' v nnzinnì' vHL'v"'.
REGISTRO SSPCON2
Struttura interna del registro ausiliario di controllo SSPCON2.
COflIUN'CAzlIONI l2C su silicio
. Generare . Generare
la condizione di Start.
c. Si carica in
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 bit RA//#). Per ogni byte che è stato rìcevuto dal master, si trasmette un bit di riconoscimento ACK. La sequenza dei passi da realizzare in una trasmissione del master sareb-
SSPBUFF I'induizzo dello slave da tra-
smetîere.
d. Si manda in uscita lramite SDA l'indirizzo slave.
e. Lo slave genera il bit di riconoscimento ACK. ricevuto dal master in SSPCON2. f. Si genera un interrupt alla fine del nono impulso di 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
k.
=
1.
Si genera la condizione
di Stop ponendo
be la seguente:
in SSPCON2.
a. L'utente genera la condizione di Start, ponendo SEN = 1 nel registro SSPCON. b. Si pone il bit SSPIF = 1 per terminare la condizio-
L Dopo aver completato la condizione genera un interrupt.
ne di Start e non iniziarne un'altra orima.
-l-"--"*- sEúSTART
i
i! :-ks
SDA
r;i;
-i
'
--i:;;;l-::ì;-:-;+
con i 7 6il di indirizzo dello trosmissione R/W -
F scritlo
ì 'òon..iloto t-.ir" lo ,ouiin"i '-. di servizio del softwore per l'interrupt SSP
\
l
BF(SSPSTAT<O>) l
Slliii,," Ji
SSPBUF è scrillo
sSpeì-rÈ
: ló"p""i"-1"ùì-";;
'
lsFN
:-t:gr::llg
11-1-9
;r'.;;;;-l
r-r,oldwore
PEN
=
di Ston
1
si
Nella figura è riportato il cronogramma di una tipica trasmissione di un PIC'l6FB7X quando opera in modo master.
is;*"JsrcÒin2.ò;-: r l
I inizio condizione di
dello
I
Diagramma dei tempi di una trasmissione di un PlCl6FB7X in modo master.
vio softwore
i
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
riscono nei loro cataloohi comoonenti che rntegrano dispositivi l2C, il che significa che
massa come mostrato nella figura, I'tndirizzo completo
questi componenti sono in grado di trasferire
informazioni secondo
la normativa del
bus
l2C, e possono essere collegati a reti con questo protocollo rispondendo agli indtrizzi con cui 5966 <t:ti nrngrammati. Con l'obiettivo di collegare al bus 12C diversi dispositivi uguali, nel caso che uno non sia sufficiente, gli induizzi d questi componenti non sono totalmente definiti in fabbrica, ma gli ultimi bit sono lasciati liberi e sono collegati a piedin che devono essere collegati a terra o al positivo, per prendere valore 0 o 1 . Questo e anche il caso del componente PCFB591, che contiene
a
sarà: '1-0-0-1-0-0-0.
In seguito descriveremo le principali caratteristiche deì PCFB591, che è un componente molto rappresentativo 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 7 segmenti, sono utilizzati nella scheda N/ICRO'PlC TRAINER PLUS, che verra descritta in seguito, e che permette l'espansione del sistema di sviluppo MICRO'PlC TRAINER della ditta lngen eria de Microsistemas Prnnr:m:dnc . ,"y,-,
S
I
un convertitore A"/D e uno D/A, e dr cui parleremo. I'induizzo di 7 bit a cui risponde ha i4 bit piu significativi già programmati, mentre i 3 meno significativi sono determinati dall'utente collegando i piedini A0, A1 e 42 a massa o al positivo l4 bit più significativi sono 1-0-0-
5CL
5DA AO
AI A2 EXT VDD
Vss
osc AINO
AINI AIN2 AIN3
Collegando i piedini A0, Al
,
4r A- n tA))A U -l PV)rLtVVr ^ HZ ^ At ^^-;+;,,^ É ----si possono collocare sino a B dispositivi PCFB591 nel bus l2C ln ot tP\fa ea<o l'indirizzn
della figura è 1-0-0-0-1-0-0-0.
tratta di un circuito integrato CMOS a basso consumn rhc disnnne di rrn'interfaccia con il bus l2C e ha tre
Si
linee per determinare via hardware uno degli indirizzi fra gli B possibili a cui rispondere nella rete. Ha quattro
m ffi
:@-ffi
fffirffiHllt
ffi @
ro"$W-'m -
roffi
Schema a blocchi del dispositivo l2C PCFB591 che contrene un convertitore AID e uno D/A
VREF
AGND
CON'IUN'CAz|ONI I dispositivi l2C É
iNìt{ìì*s:luùuìutututìittìut]w*r1t:r,rrrr,r,:rril
N9 PIN AINO
t-4
A'NI
5-7
AIN2
AOUT
8
AIN3
Vrrr
AO
i]]AGND
9 IO
EXI
tl
AI
.,t:.,@úrt,.jjajaaaaataa:ta\ fi
,ry\tiuluu!!tau!re:?:::rrrrl!srÍt1Ír!riw:ì!1&$ìrììirìlììtsìd@ruìtl
t2 t3 t4 t5 ,9_
A2 Vss
rrrtirtìiiúMFìryrfi
DESCRIZIONE : : Ingresso onologico per I'ADC AO-A2 : Linee degli indirizzi hqrdwqre Vss : Negotivo dell'olimentozione SDA : lineo dei doti del bus l2C SCL : Lineo del clock del bus l2C OSC I t/O dell'oscillqtore EXT , Selezione dell'oscillqtoîe2 "O" inlerno; "1" AGND , Morro del segnole onologico Vref ' Ingresso dello tensione di riferimento
.'l:' rrtullllli''
SEGNAIE AINO-A|N4
Aout
Uscito onologico del DAC
vdd
Positivo dell'olimentozione
eslerno
Predinaura del PCFB591 e descrizione dei piedrni
MsB
ffi
LSB
'r
PARTE
PARTE FISSA
BY'EDlcoN'Ror[o
+ I
ti'iùiìiió'oii
ì : I .
l
PROGRAMMABILE l
inè
iix,ùr,iiJ
00CANA:-0 OI CANAI. I l0 cANAr2 11 CANAL3
or
ruióiùènir'iiùò
Io$ivoo"l"Ì
l
t- .-.. ,,,-.,,. .-..,,-,-..-..... ... . SEIIZIONE DTI.TIPO DI INGRESSO ANALOGICO
R,'fo rli ínrlirí--n rnrri<nnnrlgpte dl PC|B59î
OO
OUATIRO INGRESSI INDIPINDTNTI CANALO CANAI. ì CANAT 2 CANAL 3
OI
TRE INGRESSI INOIPENDENII
.
ingressi analogici per il convertitore A/D, e un segnale analogico per il convertitore D/A. ll margine di tensione -^-r^^i-' ^"^ ororugrLo vor rors fra 0 V e la tensione di alimentaPuv "'"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 quello di Lettura/Scrittura (RA//#), il master invia un secon-
cAMr.0 AINI
I
do hvte dr ror^lrollo rhp si r:rica nel renistro di controllo 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
AINO AINI AIN2 AIN3
CANAI.
I
AIN2 AIN3
: , :
CANAT 2
ì0 E
DUÈ |NGRESS| INDIPENDENÌ| UNO DI;IERENZIAI.E
CANAT 0 AtNo641141 4111^'r'4 + &-caUnir AlN3---ff 1
.
.I
ì
DUE INGRESSI DIFFERENZIALI
ArNo--1fu-cnNrLo AlNl ----+ÉP-
arN2-----&r &eììlìÈll!ì>AIN3 ----J#Prr-lo
or
usèrn
caNAt I
lln,oocl
ll master invia al PCFB591 un secondo byte di controllo, i cui bit qoverndno le pani fondamenàli dell operaztone
GOMUNIGAZjIONI I dispositivi l2G .
-,r*--" -
-
USCITA
tVour=VAGND
;ivii ;i;i;i;vÀtó ii.-ilta
;
Vour Voo
Vnrr
Vlotro Vss
Grafírn rha rannrè<antÀ l'^ffqnimento
ll codice binario del terzo byte che invia il master seleziona una delle 256 resistenze, ottenendo il segnale analogico equivalente
); ,,--;+- ut,^ r.,^-ione turtL
-^^/^^r-^ ut u)rtLat attalvgt\u
r'lol <oonalp
del codice binario o esadecimale.
codice brnario ricevuto, ottenendo il segnale analogico
in tensione analogica. Il convertitore D/A è composto da un divisore di tensione formato da 256 resìstenze, a r- +^^.;^îe -,,: -i ^^^r:-- rú LEr)rVl di riferimento. Un decodifica_ LUI )l dPPILO tore selezrona uno di questi elementì a seconda del
SCL---L5LEI
HEX
00 0t 02 03 04
equ rvalente.
ll segnale analogico può essere amplificato prima di essere mandato al piedino Aout, dove verra mantent-
J4Aí'L ru{T'L J]JT|'\'
/fA
Vour '-siÀróbr
-
-'-
a-r-rÀ rN-DipÉNóÈNzAO VATORE PRECEDENTEMENTE CONTENUTO NEL REGISTRO DAC
Sequenza della conversione D/A
-
VATORE PRECEDENTE
VAI-ORE DEL BYTEI
CONTENUTO NEL REG. DAC
DEt DATO
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 ì
CONVERSIONE CONVERSIONE NFI P,VTF 1
NtrI
@tM|......................4
R.\/Ttr
'
TRASMISSIONE TRASMISSIONE BYTE
PRECEDENTE
DEL BYTF
I
DEL BYTE,,3
_
ì
CONVERSIONE NtrI NVTtr'ì TRASMISSIONE 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 tecnica delle approssimazioni successive per realizzare la tra-
duzione del valore analogico a quello digitale. Durante uno dei suoi cicli di lavoro, impiega un comparatore ad alto guadagno, un registro ad approssimazioni successive, e il convertitore D/A come mostrato nella figura che riporta lo schema a blocchi delsuo funSchema a blocchi
zronamento.
La tensione analogica di ingresso Ve che si vuole convertire a digitale, viene comparata con quella fornita dal convertitore D/A e dal comparatore esce 0 o 1 a seconda del risultato. Questa uscita si applica al registro ad approssimazioni successive, e in ogni ciclo si determina 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 lettura, dopo riceve il riconoscimento ACK da parte del PCFB591. Quest'ultimo invia
il byte della conversione
precedente prima di campionare nuovamente il canale selezronato, per realizzare una nuova conversione. Al termine di questa si ottiene il codice a B bit che viene
del convertitore AlD ad approsstmazioni successiye.
depositato sul registro ADC per la successiva elaborazione.
Se è stato attivato il bit 2 del registro di controllo (autoincremento), si seleziona il canale successivo automaticamente. ll primo byte che trasmette il dispositìvo durante il ciclo di lettura contiene il risultato della conversione precedente. Se c'è stato un Reset per connessione dell'alimentazione, il bvte letto è 80 Hex.
COMUNICAzlIONT Comunicerzione serigle sincroner e eisincronel
RS-232-C (r)
ulilizzo diffuso della comunicazione seriale inizio con l'adattaBYTE BYTE mento di numerose periferiche ln t svttè:SVNar , tipiche dei PC, dall'umile mou:.:..']|.l,...i'i.i:.r:..]'...:''1'---'..!.'.é|]!*:..'ì.:..,...,..,:...'..."..'.-....,1.,.. se sino al piu complesso moBYTE DEI DATI sYrr DI slNcRoNtsMo dem. A fronte di un così grande quantitativo di dispositivi candidati ad utilizzare questo tipo di trasferimento che accomunava Nella comunicazione seriale sincrona i byte dei dati vantaggi della semplicità, economia e sicusi trasferiscono uno di seguito all'altro, preceduti da alcuni bit di sincronizzazione rezza, furono creati diversi organismi che cercarono di normalizzare i protocolli per rrno o due hvte di sincronismo. ll ricevitore deve autopoter omologare i prodottì che li utilizzavano. Fra quesincronizzarsi con i bit che rìceve; nella figura riportiasti ricordiamo negli USA l'ElA, che propose l'interfaccia mo il formato generale de Ia comunicazione seriale s nRS-232-C, considerata uno standard industriale per il crona. 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: sincrona
i 2" i 3" t 4'
*l-
l*
ì
:<inrrnn: so oJlllLlullu,
p nlo(t't1l+im: L 9urJL urLllllc
a rr-tilizz:+: E l:lo nirr Plu Utll)LLala. -^ -L-L-l--^ -^*^ ^i: gra spregato, In questa comunlcazlone LOme a00ramo nnni orr,nnn di ht dpi d:ti dpvp éssere nrereduto e Seguito da segnali di sincronizzazìone. Come minimo davanti abbiamo un bit di Start e dìetro uno di Stop Un parametro fondamentale di tutta la comunicazrone 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 bit al secordo Nel protocollo RS-232-C, ìa frequenza rn baud deve avere un valore normalizzato. 330, 600,
ASINCRONA: con questo sistema i bit da trasferire in <orio qnnn divi<i in nirrnli n:rrhptti n nrr rnni rhe si rnrri:nn v,r!ruuLl nrarad, rti d: ,rn <onn:la di inizin o conrriti d:
uno
d fine, Ogni gruppo di bit, ir ge'.erale
Nr^l Lo)v -.-a pdruro. I\Er ^-"^rnn nrora|r ti d: uo llv PlcLcuuLl nli I hit <i nnno gil u urL )' pvrrs
B, e una
ni,, B urr hit vu da fraSfer Lr o fe )L,rrvillu ali P u "omnlice vil u
SO_
nlarn ucL 2l ur lprmina ulrvrLhrt ni ur rniz'n l(t:rt\ L/ o "(lllllllr qpnn:l: :n,urr rn hil di fine l(tnn\ 6f-1p ur. *, ,.,,, -,_grloro qP-
punto il ter"nine del trasferimento, cosr come rioortato nol nr:firn qlNIaRONlA cari: rn tinn di ,rr n1oqtÒ rcllO tlPU Ul tr:cfprimo.+n tlqJlEllll'qlllU {n. 9uL)(W
a C
1200,2400,4800, 9600, 19 200,38.400, ecc. Ur'altra caratteristica importante d' un protocollo e ìl numero di bit che con-
l'emettilore invia i byte dei dati in sequenza, uno dietro l'altro sino al ternine l byte dei dati sono preceduti da
tiono n,rrrhottn v n:ral: LrL'rL nnni v:rr 'L (v 6' PolUlq, L
BIT STOP
I
^-^ r'I rc J c))grc LUr lPrE)u À nhhlin:tnrin
nha nlo,,a Ll ls UEVE
r: 9. Anche se non À mnlln {ronrronta inrlrr-
doro in nnni lr:<forimant^ rn hit r{, n:"Y,,, ., prima i del bit di rita, dopo bit dei dat, e (tnn J r vP. orroctn vus)Lv
q, 66pnrr .; r;l^\,a hit I rlEVo ^^r urL Jr ysr lul d E ^ )l Pcl
indicare e conoscere la parita o disparita Nella comunicazrone sertale astncrona di base, ogni pacchetto di
bit dei
dati deve e,sere preceduto da un bit di lnizio Sldrlre seguito da ttn biL di Fine (SLoal
del numero di b t a 1 che contiene la parola rnviata o ricevuta, rispettivamente. E
COMUNICAziIONI Cornuniceizione sericrle sincrond e qsincnoncl
BIT 2 BIT Pl PARITII, SrOP
BIT START
nresi i dle staîi looici ll livello alto fra +5 e +15 VDC, e il livello basso fra -5 e -15 VDC 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 livello basso. Dato che questi livelli non sono
:
i
:lolllooti
,
8 BIT DEI DATI
compatibili con quelli TTL dei mìcrocontrol-
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 di aarita e da 2 bit di Stoa
uno strumento molto efficace e molto semplice per sapere se il trasferimento è stato realizzalo normalmente o si sono verificati errori, che la maggior parte delle volte 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à, questo fatto sarà rilevato dal bit di parità Alla fine della trasmissione di una parola si inviano i bit di Stop. che possono essere 1, 1.5 o 2 e la cui funzione principale è determinare iltempo minimo fra due trasferimenti di parole consecutive. Nella figura si mostra il diagramma temporale della trasmissione di una parola di B bit, secondo il protocollo RS232-C, il cui codice è 101 1 1001 . ll bit di
e
ru
parità vale
O
la
e indica che la parità dei da-
ler e dei microprocessori del PC, sono necessari circuiti integrati specializzati, come
quello mostrato in figura, che ha la sigla MAX232, che hanno il comprto di adattare i ìivelli in enlrambi i versi.
tratta di un circuito integrato progettato e costruito da Intel, che, come dice il suo nome, e un Trasmettitore-Ricevitore Sincrono-Asincrono Universale. La sua funzione e quella di convertire l'informazione parallela, Si
":{'o*'
m'-J:-**m
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 minimo di due periodi di clock dopo la fine di quella descritta. Nella normativa di questo protocollo, sono stabiliti r , range della tensione DCV fra cui devono essere comparola successiva da trasferire deve attendere un
che arriva dal microcontroller o dal PC, in seriale per le periferiche utilizzale, e viceversa. Comunica con il microcontroller o il PC tramite un bus da 8 linee, mentre per la comunicazione con le periferiche utilizza la linea o le linee necessarie a seconda del protocollo impiega-
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#.
. vcc
LIVELLI RS232-C
IIVETII TTt
ll circuito integrato MAX 232 trasforma i livelli R5232-C in livelli
#
*'** * ze& a *z# *
**
TTL
e viceversa
+ E * €4 #4' *
ae +.
=4
*
***
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 dato, e tramite RxC# si applica la frequenza di lavoro, che deve essere uguale a quella di trasmissione.
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
TRASMETTTTOREVUOTO
PRONTO PER
TxE
TxRDY ACCETTARE DATI
TRASM.
FREQ. CTOCK
T_xC
-RxD-
INGRESSO DATI SERIALI CARATTERE
RxRDY
DISPONIBILE
FRE
QU E N
ZA
C
LOC
K
n
RtC EZ.
tl
Rx_C
BUs DEI DATI
tEl lú,1
\
till
8'
tdl
SYNDET RESET
MODEM PRONIO DSR
TETTURA
m
crocK
m c/D cT
U
TERMTNALE DEr DAT| PRONTO D-TR
CLK
CONTROLLO
SCRITTURA
ABITITAZIONE A TRASMETTERE
coNTROLTO/DATO
PER USART
SELEZIONE CHIP
MODEM
-
cTs
RICHIESTA DI INVIO 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 tOUT), carica un registro fondamentale di questa sezione .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 sonn r,rric,ati r^rl: B hit chp sono arrivat in modo seriale da -
D2 D3
DO
VCC
D4
Dó, Sezione di controllo.
D7
ceve e invia i segnali dr controllo necessari per supportare la corr-nicazione e pe' adallarsi ad un modem, -h^C Í^ Ll
UlnI
TxC.
wn
Àicnnci+i',n di^if]l; Ul)pU)lLlVU .1^).o LqVu!L d v rr:<[nrm:ro .ruJrvr | | rur! d.'i ud Ll Ul9ltOll
..J^+. ^^- ^^r^ -^-i-r i^ lllUdLI dlldlU9lLl, )trlldll,
-r:smp-'o"li rrL..L ,r
npr nni pLr Vvr .ruJr
.,r iU r
cs
Una li-ea
c/D
telefonica. ':=.1-','
'...;:L
D5.
R
t;;',
:'r::.
GND
1a perif enca.
.
DI
RxD
L'USART ha un contenitore a 28 pin per supporta-
re trrtti iseonali neces.--i I JLyrru'r TTLLLJ)Cll
r- ,,î -.r-++-.-i UC ^^. ouottOl)l Ul
latO Una CPU a 8 bit, e dall'altro alle periferiche seriali e al modem. |: LO +i^,,.rvuro
niorlin:tlr: PrEUIrOLUrO o- l-+^ roLU.
PEI
r]al Uqt .^mn^nantó lVrrrPVrrqrrLE
: t-
RD
RxRDY
,
cTs SYNDET
rì
TxRDY
À rrvvr LqLo nnllr rrEilo E rinnr+r+r
..
. t-,:.-=:.=+.r.a.a+'Z:.a==a:. ..:.=t:.;+a;.1;. ':.;'.ai.:,a;=::|+ ',4w''Wq.4|1||1,..jj1'@w'Wil;\||||||W,..:..:..':....\|\\|Ny.\.||)\||||1|1:1.:::11ììì11lììiìsffig*f
I
j.!::
:r.:t.=:;aa..a-.L1....;.:.-,,a.tt.,:
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à, numero di bit di Stop, ecc. f USART dispone di un solo registro di controllo per ia programmazione, pero è multifunzione, in modo che
Questo circuito è programmabile, quindi caricando correttamente i bit dei registri di controllo, si stabiliscono le caratlerrstiche del suo f unzionamento, e di conseguenza quelle deila comunicazione. Tra le caratteristiche programmabili ricordiamo: selezione del trasferimento sincrono e asincrono, velocità di trasferimento, numero di
quando siinizializza la configurazione dopo un reset, deve essere scritto due volie consecutivamente. Prima si scrive un byte che s, chiama "istruzione modo", e dopo un altro che si chiama "istruzione comando". Con il pri-
PAROLA DELTISTRUZIONE COMANDO
"I "
PERMETTE
ABIIJTA/ONE ALLA TRASMISSIONE l: ABIIITATA 0: DlSABltlTATA
LA RICERCA DI CARATTERI SYNC,
IN MODO SINCRONO
"I"
"I"
IMPOSTA LA TINEA DI USCITA DTR A "0"
PASSA IL 825I AI FORMATO DEL[ISTRUZIONE
ABITITAZIONE ATLA RICEZIONE
MODO
,,I''
I:
RESET DEI FLAG
"1"
FORZA LA LINEA TxD A
come illustrato nella figura, che descrive il romnito di |ai hit 5 6ii rur ru ucr urr q ur a' 'nc+a u9r vuu)rc ^^^rrn^
0ue parore. La cosa interessante di ^llo(l^
0: DISABIIITATA
IMPOSTA RTS = O
IJI{POSIANDO I Sl EANCEITANO I FLAG PE, OE, FE.
ABILITATA
mo sr definiscono le caratteristiche PriP6iPali del funzionamento dell'USART e con il secondo le funzioni ausiliarie,
"0"
"0" TxD FUNZIONA NORMAIMENTE
rirrttita
intonr:tn
chiamato USART è che moltr modelli dr microprocessori lo contengono integrato sul silirin n ro<-in liil rendo:d:iti iqrrus oudlll ilLrv,9Jq)LV
d:
una connessione diretta con fLULLr rrfti Ii tini îli VLrrrurrlrFri.L^rq Ll-^^lE LrVr ur ^arif
eamnìti rlpi hit r'lella narnl4
"1571'Lt7t9ne COmandO"
comunicano tramite il protocollo RS-232-C.
GO tO
RS-232-C
(il)
_, lcuni modelli di microcontroller contengono 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
:r1,
16C7X e il
PIC
16F87X.
ln riferimento alla famiglia PlC16F87X, abbiamo già visto che dispone di un moduìo MSSP che supporta due
formatì di comunìcazione sincrona, con il segnale di clock, in modo SPl, e in modo bus l2C. Inoltre possiedono 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).
Nella figura è riportato lo schema del comportamento dell'USART dei PIC in modo asincrono e sincrono. Nel primo iì trasferimento si realizza sulle linee Tx e Rx, dalle quali escono ed entrano ibit seriali, alla veìo-
cita della frequenza di lavoro. Nel modo sincrono la linea 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 piedini multifunzione RC7/R)VDT e RC6/TX7CK. Quando si lavora con il protocollo RS-232-C la parola puo essere di 8 o 9 bit - abitualmente è 8 bit- i quali sono preceduti dal bit di Start e seguiti dal bit di Stop. PlC16FB7X non supportano il bit di parita, quindi se la periferica da controllare lo richiede, bisognerà crearlo vìa software, scrivendolo sul nono bit del dato. I
,,,
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 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
e sincrono.
dei PlCl6FB7X.
ar,
rio^i
generare
,=
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:: ;..
|:
-
a/
DEI
ùatl
ffiÌst ffiffi
w
:
I trasferimenti nel protocollo RS-232-C si
BUs
EÈ@Fffiri
effettuano ad
una frequenza normalizzata in baud (330, 600, 1.200, 2.400, 4.800. 9.600, 19.200, 38.400 ecc.). Questa frequenza è prodotta dal generatore di baud BRG, il cui valore è controllato dalle impostazioni del registro
iffi*Hffiwffi
ffiffi ,:ffi :
Schema a blocchi del trasmettitore asincrono dell'USART.
SPB RG.
":!
La frequenza del generatore di baud dipende dal valore X caricato nel registro PSBRG, e dal valore del bit BRGH (fXSIA). Se BRGH = 0 si lavora con bassa velocità, e la costante K della formula vale 64. Quando BRGH = 1 il valore K= 16.
Frequenza in baud = Fosc / K * (X + 1)
i
TXSTA
:"
,
Struttura interna del registro di stato del trasmettitore dell'USART del PlCl 6FB7X.
X: Valore caricato nel registro SPBRG
Lo schema a blocchi del trasmettitore asincrono della figura, mostra gli elementi fondamentali e il compito di alcuni bit di controllo del registro di stato del tra-
K=64seBRGH=0 K=16seBRGH=1 t:l ..j'E í+,7;T {:_{} !"4T 2
7,2
&.!} ::4
tî 7 í.3 {} t"!,!i
smettrtore.
&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. Inoltre prima 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 trasla automaticamente al reqistro buffer RCREG.
la
T:
Collegamento di due PlCl6FB7X tramite il loro modulo USART in funzionamento asincrono
*é'{+
É,é#,Ét"YîF:: +:ttiiu
í:=t*'*::++;r +}+;í
E+t;èí
ll registro di stato del trasmettitore si chiama TXSTA e possiamo vedere la sua struttura interna nella figura in 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 scrivere 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 farlo funzionare 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,
COMUNICAziIONI
,r,,r,,,,,,,,,r,À,,,, ,j1:i1iii:.11l:lliltltta.tata:a.|..a......:a-.-...:..:...:,a:aa:aaaa::aaa.:::aattt:ii::ttti*a:
ll
GO {lììiiìùlrilìì:ììì)ìì:ìììì;ììÈì::ij;:i:ììtì:ì::ulltrlrrurlr'
lrl
ÈrC :
'1ìtùil1111,,1,sr-*sir
TRMT del registro TXSTA vale 1 quando il trasmettitore e vuoto. ll bit CSRC definisce nel modo sincrono quando l'USART lavora come Master (1) o come Slave (0).
riceve il bit di Stop si sposta l'informazione al registro RCREG. ll registro di controllo e di stato del ricevitore si chiama RCSTA e la sua struttura interna e riportata nella figura.
ll dato ricevuto via seriale dal pin RC7/R)7DT entra nel -'J 'ur'^rpoistro RSR I LVrrLrv r\Jr\ rhp r-rvr ro qu rq {.^^,,^^-l rr EvuEr rz( 16 volte !r rL frrurrnzi^^superiore a quella di lavoro. Quando si riempie RSR e si
'1, Quando il dato ha 9 bit bisogna scrivere RX9 = 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
RCSTA
Struttura interna del registro RCSTA per il ricevitore asincrono dell'USART.
.iffi ì ::: :
*
:..
ìì .,.t: .: :. . )
i..)):1
iiiit {:r #
!:i: ;rt
REGISTRO DI SPOSTAMENTO
M5B
(ax -u
l
M
.
RC7/RX/D|
3
l
t5B
r]
ffi
ruu}
iii ,ri!
:rlrl:
# # il;ì: r;lil (li} rp ìrll! fi; 4 ù:
-
t: ll:
I
, lltl
.rg
[ffi |i:w I
]rffiltll
@ ABII-ITAZIONE
At
CARICO
BUFFER RICEVITORE
ìì
$ì
w INTERRUPT
w
w
.zg
ìwwi .rg BUs DEI DATI
Schema a blocchi del ricevitore dell'USART.
?#'
za
1..,È'#'
éîi:"{
+"iEt
i+:;-É
+ i' :;:t t+ 4.+'í'#t'É'É.
j
GOfirUNrcAZlOl{l Un USARÍ crll'interno dei
I
PIG
PASSI DA SIGUIRE PER RTA1IZZARE UIIA RICEZIOIIE ASIIICROIIA SO]IO
f.
Si
crica il registro
SPBRG con il
Dobbiamo anche controllare ilvalore del bit BRGH che determina la costante
2, lmpostare 3.
Se
SPEN
'l = per attivare
I
SEGUTIITI:
valore X adatto a lavorare alla frequenza desiderata.
I'USART e SYNC = 0 per
K.
failo funzionare in modo asincrono,
vogliamo che si produca un interrupt all'arrivo dell'ultimo bit della parola dobbiamo impostare il bit di abilitazione
4. Quando si lavora con parole di 9 bit si imposta
l
Per rilevare I'indirizzo si lmposta ADDEN =
6.
Si abilita I'USART
in ritezione ton
CREN
7. Terminata la rícezione dí una parola
=
f
RX9 = 1.
î. ,
RCIF passa a 1 e si
8.
Si legge RCSTA e si verifica se ci sono stati errori.
9.
Si leggono
gli 8 bit di
RCREG per
f0.
Se ci
ll.
5e il dispositivo è stato
tono stati erori porre
produrrà un interrupt se il bit
1.
CREN = 0.
tutti i bit e il nono puo essere
errore di trama. Se OERR = 1 significa che è stato prodotto 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^, t\ct d- Lducrrd ucrro- il9uro
)vrru
"^--^tttiI "^^istri rc9l che si roLlvrL,
utìlizzano nell'USART dei PIC 16F8lX, con le caratteristiche piu rilevanti, e la loro struttura interna.
modo asrncrono.
=
=
determinare se il dispositivo è stato indirizzato,
ulilizzalo corne b t di parita Il brt CREN abilita la ricezione continua dei dati quando vale 1 e la disabilita quando vale 0. ll bit SPEN abilita (1) o disabilita (0) la nort.a spriale SPFN non influisce sL,rl funzionamento in FERR
RCIE
indirizato dobbiamo pone ADDEN = 0, per permettere la ritezione del dato.
ADDEN = 0 sì ricevono
Quando
RCIE = 1.
1 indica che e stato prodotto un
e
r'ì
"o,gf .s
-/--
e$o
8Ch
PIEI
PSPIE
"at ADIE RCIE
0ch
PIRI
PSPIF
ADIF RCIF
98h
TXSIA
CSRC
TXg
RCSTA
SPEN
I8h IAh I9h 99h
"{
-
RXg
e$ù
.f
e$
"*"
-( r-
!ìY "&Ì"3
/lr
.È-ÈtrD'-Y,'
ó"
TXIE
55PtE
CCPr rE
TMR2IE
TMRilE 0000
0000
0000 0000
TXIF
ssPrF ccPilF
TMRzIF
TMRilr 0000
0000
0000 0000
TXEN SYNC -U * SREN
&-ry
A\
CREN
TRMT
BRGH -FERR
ADDEN
* oERR
TX9D 0000-0r0 0000-0r0 *RXqD oooo
ooox
oooo ooox
RCREG
Regislro di ricezione dell'USART
0000
0000
0000 0000
TXREG
Registro di trosmissione dell'USART
0000
0000 .
0000 0000
*sPBRG *
Registro generotore di boud
-
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ùì
0000 0000
s
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ìncrono semiduplex, tipo memorie EEPROM seriali, convertitori AD e DA, ecc. In quesro modo ogni elemento puo lavorare come
CLOCK .r =--ffi
5.
master o slave.
lbit
sono trasmessi nei due versì tramite
la
[.--i{!-*4
linea dei dati RC7/RX/DT. ll segnale di clock è sem-
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. Ricordate che nella comunicazione sincrona, iltrasferimento dei dati è continuo, e ogni blocco di infor-
Nel modo sincrono dell'USARI la frequenza di trasferimento dell'rnformazrone è generata dal master
BUS DEI DATI
./g
A TXIE
#tr
W INTERRUPT
*.ffi,o,
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--^"^
dell'USART come master seg
RCSTA
l.ro +"-.-i., LroJrr rrrilOl^l€
in modo sincrono sono
i
uenti:
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 RCSTA
sincrono,CSRCalper
incaricato del controllo della rtcezione dell'USART.
far lavorare |'USART come master, e il bit
mazione va preceduto da uno o due byte che di solito sono caratteri ASCII SYNC. Inoltre nel modo sincrono bìsogna programmare l'USART per selezionare i parametri di funzionamento,
fra cui la frequenza rn baud e il numero di bit
a 1 per
abilitare la porta seriale,
3',
Collocare TXIE a 1 se si desidera che si generi
un interrupt al termine della trasmissione,
della
oarola. che oossono essere B o 9 ecc.
SPEN
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 modo asincrono, il regìstro TXREG come buffer dei d,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 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 rnterrupt che torna a caricare il registro TXREG, per continuare immediatamente dopo con la trasmissione del dato in serie. Nella figura riportata in basso nella pagina precedente, e illustrato lo schema a blocchi del master trasmettitore, 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, deposrtando il nono bit in TX9D. Quando SYNC vale 1 sr sceglie
il modo sincrono. ll bit CSRC determina in modo sincrono 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ìcato nel registro SPBRG. Quando il bit TRMT vale '1 il registro TSR è vuoto. Infine il bit BRGH seleziona il valore della costante K che interviene nella formula per il calcolo della frequenza in baud, visto durante lo studio del modo asincrono.
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 utilizzano i hit dcl renistrs RCSTA.
Quando si lavora con parole di 9 bit dobbiamo porre RX9 a 1 e il nono bit che si riceve si carica sul bit RX9D. Con SPEN a 1si abilita la porta seriale Con SREN a'1 si abilita il master alla ricezione e con C REN a '1 si permette la rcezrone continua. 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 prendono i registri dell'USART in modo sincrono dopo un Reset.
Per abilitare la ricezione nel master si pone SREN bit entrano in modo seriale tramite pin
a1 |
il
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 modo consecutivo. Ogni volta che si riempie RSR, il valore si trasferisce al RCREG.
*cornuNlclzloNl f'USnRl in modo sincrono llll
\
'""1@*,rrrrrrr,*rrr,ru.,,,,,,,
lpassida seguire nella ricezione sincrona dell'USART Le due differenze piu importanti dello slave e del master
sono i seguenti:
quando lavorano in comunicazione sincrona sono seg 10.
Si carica
il valore adeguato di X nel registro
1'.
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
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.
5',
= 1. Quando si vuole realizzare una ricezione continua di parole imposteremo anche CREN a
7'.
8',
5i legge il registro
9", Verificare
RCSTA e
f.
L
da TXREG a
il RXgD se si lavora con 9 bit,
FERR
imnnct:tn d : 1| ci il'rpu)LdLU >r nrndrtrr: I,Jruu-,
e 0ERR.
100. 5e si è verificato qualche errore cancellarlo ponendo
TSR
Dopodiche si porrà TXIF a 1, e se TXIE era stato
se si è prodotto qualche enore nella ricezione,
testando i[ valore dei flag
î1".
SLEEP. Successivamente si trasferisce al registro TSR 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
zione
SREN
Al termine della ricezione imposteremo a 1 il flag RCll, producendo un interrupt se avremo posto RCli a
È possibile che lo slave stia lavorando mentre il PIC si trova in modo Riposo, situazione che si origina dono l'eserrrzione di una istruzione SLEEP.
Per lavorare nel modo Riposo si scrivono due n:rnlp nol rooictrn TXRFG e dono si eseoUe l'ìstfut/u,v'L
RX9 deve essere a 1.
5e desideriamo realizzare solo la ricezione di una parola
imposteremo
Lo slave riceve tramite il piedino RC6/T)VCK la frequenza degli impulsi del clock che arrivano dal master.
2".
come master,
50, Lavorando con parole da 9 bit,
uenti:
SPBRG, per
selezionare la frequenza di lavoro,
2',
ln intorrrtnt ,.,,,-r.
dplln sl:rio qono iseorrentt.
s
5l
a\
.o-$*
{Ft'
.oo'.cù-
4
ahÉ' ,, J -',^^i;^/ì )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
CREN a 0.
Lettura del registro RCRFG.
.*$'
le
,o .o+elvÈ- .o$1'.F$= 9$ -\F"ù -\ts'Or,'
sa' èo' es'
o$o ó"
.$o
8Ch PIEI PSPIE OCh PIRI PSPIF 98h TXSTA CSRC I8h RCSTA SPEN IAh RCREG 99h SPBRG t9h *TXREG u
ADIE RCIE
IXIE
SSPIE CCPIIE
TMR2IE
TMRI|E
ADIF RCIT TXIF
SSPIF CCPIIF
TMR2IF
TMRilF 0000
"*" "*" "*'
--
BRGH TRMT TX9 TXEN SYNC . .OERR 'FERR RX9 SREN CREN ADDEN
-o*?Ó
-$o-'a\$-
00000000 00000000
0000
TX9D 0000 -0r0 'RX9D
0000 0000 0000
-0t0
0000 000x
Registro di ricezione dell'USART
000x ooo0 0ooo
Registro generotore di boud
oooo
oooo
0ooo oooo
'
oooo oooo
Registro di hosmissione dell'USART
-
0000
oooo oooo
o0oo 0ooo
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'operazione di ricezione sono i seguenti:
1', Abilítare la porta seriale impostando SPEN a 1 e il modo sincrono con SYNC a Per
1,
fare in modo che
l'.
lavori come slave si pone CSRC a 0.
Se desideriamo generare un
con SYNC a
interrupt alla fine della
trasmissione impostiamo TXIE a
impostiamo TX9 a
1,
La trasmissione si
attiva con TXEN a
60, 5e si opera con 9
f
e in modo slave con
20, Se si desidera generare un
1,
a 1,
CSRC
= 1,
interrupt al termine della
ricezione RCIE deve essere a
4". Se vogliamo trasmettere parole di 9 bit
5',
SPEN
Porre in modo sincrono
20, Porre CREN = SREN = 0
3'.
Abilitare la porta seriale ponendo
30. Con parole
di
I
'1.
bit RX9 vanà
1.
'1,
40. La ricezione si
abilita quando
RCEN
vale
L
bit caricheremo il nono in TX9D, 50.
70, Iniziare la trasmissione caricando i
dati in
TXREG,
Al termine della ricezione RCIF è uguale a 1 e si genera un interrupt se CRIE è a
6'. 5i legge il registro Per fare in modo che lo slave funzioni in ricezione imposteremo 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 stati abrlitati gli interrupt con RCIE = '1, si generera l'interrupt
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
1,
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,
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 è consigliato per r dispositivi veloci che si trovano fisica-
rontrnlln nermettnno il funzionamento di gp +lin-flnn vL,,,,LLrvl alla volta, come mostrato nella figura.
mente vicini. oer evitare rumori e interferenze. Per faciritare ;l collegamento dei sistemi basati su micro-
-^^r stati svi^-'-rr^r^ nrocessore con le r-nertr^'t't'^ _. ilcrLrc Pdroilcrc, )urL luppati una serie di circuiti integrati specifici, uno dei piu conosciutL e utilizzati è il PPI 8255, prodotto Intel. F stato nrnnettato nor nrn.oqq^ri LLq Lv y, vyL
da B
bit
da
ron il hrts dei dati
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.
Schema sempliftcato che riporta tl controllo delle ltnee della
't-"^ pataltcta ^---//^/' tt'^^ ^ossiedono alcuni mtcrocontroller tc P
^^'+^ pvt La )tavc
ll PPI ha un contenitore da 40 pin, la sua struttura Inter^^ l^i^!i^-+, na e la preornarura sono moslraÎe neìla figura.
PlC.
A parte la rapidità, la trasmissìone parallela ha solo degli svantaggi; la maggiore quantita di linee di cui e il fatto che le neressita srnnone rn costo maooiorp ,,'"yy,.,, l nop cr rrrrirri,rnni: il seonale siano così vicine fra di loro da origine a rumori e a interferenze, dovute anche ,^^-- u.li f unzionamento. -il,^r^,,-+cI EtEvoLc {-^^, IqvuErrzo
l::
Ogni linea del bus dei dati del microcontroller
t\|w',tg'
jai||$1$rf
sf tÌÌ[ùùtfrstu0ir]rrr,,rrrr:/l
I '
G *
-----+
ry E
ffir ffilv3^. nffil
-iix
Nei microcontroller PIC troviamo alcuni modelli che dispongono di una porta parallela slave implementata sul silicio Si tratta dei modelli di PIC che dispongono di cinque porte di l/O e che ne dedicano due a supportare 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 di controllo necessari sono RD# (lettura), WR# (scrittura) e CS# (selezione del chìp).
rffi ffi---;;; re-l
m
w
'W m-
cÍ Struttura interna a blocchi del PPt e predinalura del componente
i
Íe*.
v
COMUN'CAziIONI
rd
&
Gcrrcrlleristiche e funzionqrnento del PPI
l[ #
é -.,;tli'
.
L'interno del PPI e composto fonud qUattro registri da B bit Tre di questi corrispondono con -l--^^+-l-^^+^.Judr rcr rLdrrrcr rLc
, idati I : : i :
che entrano ed escono dalle porte A, B e C, mentre il quarto e il reoistro cli controllo RC. netta figura è riportato il collegamento 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 controllo 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 ll
PPI
si collega da una parte con le periferiche esterne e dall'altra con la CPU
e
composta
da otto linee bidirezionali che ricevo-
no il nome di
PAO-PA7, PBO-PB7 e PCO-PC7. La porta C di solito lavora in
0
PCt INGRESSO PCt USCITA
MODO DI TAVORO GRUPPO
MODO
A (PA+P€Hì 0 0
O
MODO I MODO
0
2
0
X
0
MoDo
2
PA INGRESSO
I
PCH INGRESSC
PA USCITA
0
PCH USCITA
due sezioni, PCH e PCL, ognuna di quattro linee. Le linee D0-D7 mettono in comunicazione il bus dei dati della CPU con i quattro registri del PPl, e le sue informazioni si scrivono o si caricano su una deìle porte, selezionata con 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 registro di controllo RC
Quando il bit piiL significativo di RC un 1, i restanti bit determtnano il modo lavoro delle tre porte
si carica con
CANCELLA O ATTIVA UN BIT DI PC
Scrivendo nel reoisîro di controllo si può programmare il PPI in modo dinamico cioe si nrro modificare il funzionamento del PPI durante l'esecuzione di un programma, in qualsiasi momento I a scriîîrrra del reoistro di controllo e programmazione del PPI permette di
0
SETEZIONE DEt BIT DI 0
0
0
BIT
I
BIT I
0
I
0
BIT 2
PC
O
realizzare i
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
d
ue azion i fondamental
i,
bit più significativo di RC si imposta a '1, i 'estanti bit di questo registro determinano il modo di lavoro delie tre norte Fsistono tre modi di lavoro: Modo 0. Modo 1 e Modo 2 e 1") Se il
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 nor indir:ro npr nrr:lo ,v rL,vv, vrl dpllo ìinpo doll: vv, norte ,Lr vr,,u 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.
ll
PPI ammette tre modì di funzionà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 fra il PPl, le periferiche e la CPU. Possono solo lavoraesempio un insieme di otto diodi LED; altri dispositivi, re in questo modo le porte A e B dato che la porta C definiti "intelligenti" necessitano di segnali di dialogo 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 riceche sono necessarì Quando si utilizza una periferica di ;^^"^..^ .t LdrLo -^"'.^ uro ^r-+^ Si attiva il ' '^- ^^.+î il tvtc))ur c^ )r vuto". Di seguito descriveremo il comportamento di Pwt Lo Lwr I ut I uqrv, segnale STB# allora il PPI attiva automaticamente un ognuno dei modi di lavoro: segnale chiamato IBF (Buffer di Ingresso Pieno) per avvisare la CPU che c'è un dato da leqqere. Modo 0 E rl piu semplrce di lutti, dato che nnn no<ti<ro <onn:li ,iv,, YTJL,JTL
r{i di:lnnn
con le neriferiche che si considerano "non inteìligenti". Ad esempio, una periferica nor intelligente
RC
EEEEEEET IBFA
di rnnrpsso e rrn insieme di B interruttori, e se è di uscita un insieme di 8 diodi LED.
Dobbiamo dollo uLilL
v9rrurru
^nn1n:
programmare
nar f:rl: tro lOllO LrL 66pfa pvrLq PEr
lavorare come Ingresso o come , ,--,+ î - "1,,^^ A^ aoegualamenle ^A ^. uSctla, -scrven0o r bit di RC In questo modo pos-
sono lavorare tutte le porte PA, PB, PCH e PCL. Nella figura e rinnr+r+n llpul Lolu l^..ham: lu )Lllqllro
dr ur rnllon:LvilLvu
tDAto DtSPONtBt[r) INTRB
rnento del PPI nel Modo 0.
Modo
1
ll trasferimento di informazione -^^+.^ll-,^,l-i LUILrUrrOtU
e -^^^-li,li,li.l^^^ UOr )q9rqil Ur UrCrV9V
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 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 quella di nterrupt.
anche
Nel Modo 2 la porta A puo lavorare in modo bidirezionale CU ^À tr)lgc ^ci^ò
q lin^^ 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 \,,1odo
in
2 come ingresso, utilizza
i segnali IBF# e STB#, mentre se
unziona come uscita uliltzza ACK# Inoltre necessita delia linea INTR per la possibile richiesta di interrupt alla CPU. Se la npriferir,a introlgce Un CollegamenÙ della CPU a due periferiche di uscita tramite tl PPI tavorando in Modo 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 immedato in PA si attiva OBF# e quando la periferica raccodiatamente. Nella figura si mostra lo schema dei cololie ouesto dato attiva ACK# e si disattiva OBF# lonemcnti del PPI in Modo rnn LUr' drro vuL noriforirho ur IngfeSSO pLrrLrrLrrL di f
OBF# e
1
1
sulleporteAeB C)randn Yss,,vv ^li ,,.-;+u)LrLo, ur
lc neriferiche
Rc
sono
i| .^^^-li )E9f rdil ..Ji ur ,.li-l^^^ uroru9u
sono dìfferenti, anche se sono scmnre nestiti d;ìll,ì norta C. ln questo caso uno dei segnali si
il PPI lo attiva :r.tomatiramentc nrrandO la chiama OBF#, e
l: nnrl-r aPl I (rriyp rrn d:tn 666 |'JLi lo Pwl tc
EEEEEIII IPBMODOI J I:
I
=iElt-ó_"0:8.é---0,*:*--
iPsiiGnEreìi "1*e:úsín--l-ql-
l:
lPC2-PCO |NGRESSOÌ jt9?:?_9o_u..-s!_!I-4_.-r9:
TNTRA{-
A o B l'alîro sennale si chiama ACK# e lo a1 liva la neriferica di n1:ndnruw lonne rEvyq lr ld nnr+r Yuor l.iul Ld, l: ut)orlic:a^m^^rt) Il'nnor;zrnno rvvt Lq to vvqr qzrvrrE lvr ruJLrLo rcrit:
or-7
bilitazione automatica di OBF#.
Modo
2
In questo modo lavoro puo solo
-"^ r- ^^.+- A
{, tut,^-i^^ t4tvt totE to PUt Lo / Che e ,^ li^^^ ,l^,1-,,^^^/+î+a -i^^rr-.luc )uPPUr Ld Ld ,lUd Lil f il rcc uuild ,.Ji-l^^^ nnrt:Lo fne<tiro il ! nor PUr Psr vq)u q il uldlugu
Schema dei collegamenti fra la CPU e una periferica di tngresso/uscita tramite ìl PPI in Modo 2
COMUN'CAziTONI Altre regole dellc comuniccrzione seriqle
Comunicazione parallela La comunicazione dei dati in serie secondo la normativa RS-232-C fu rntrodotta nel 1962, e permette il trasferimento 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,
fluenzano molto questo tipo di trasferimento, e il motivo orincioale risiede nel fatto che si utilizza il "modo comune", che consiste nell'invìare segnali il cui valore ha
come riferimento la massa. quindi costantemente influenzati da disturbi.
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 diffuso, ha una serìe di limitazioni che impediscono la
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 interferenze ll modo differenziale verrà spiegato più avanti, pero fondamentalmente e basato sulla trasmissione di sennaìi r^omp niffprenz: di drrp tonsioni al nosto di una
-'.- dpfillLdZIUlltr -^^ri---;^^^ i^ fra esse ricordiamo: lll lllUrt, Lul -rlti camni )Ud
1u. La velocità massima è limitata a
20 Kbits/s, il che
ne impedisce l'uso nelle applicazioni dove sia necessario trasferire grandi quantità di dati. 2". La distanza massima fra l'emettitore ed il ricevitore è di 15 metri. 3u, Nel trasferimento possono essere coinvolti solo un trasmettitore e un ricevitore. 4". ll rumore e le interferenze elettromaqnetiche in-
tensione rispetto a massa. Nel modo differenziale si utilizzano 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 massa. Nella norma EIA-423-B e previsto un solo trasmettitore, ma sono possibili drversi ricevitori differenziaìi. La di.+an?r I ro))il tO ^,,À Oarrivare a 1200 )LOt t4O mî..ima PUW
metri con una velocità di 1 KbiVs.
Se
-i ^r^.,- r^^-ro {-^^, r EvuEr r4o .li L trasmissione )t cruvo diminuisce la distanza, così quando si trasferisce informazione a 100 KbiVs
la distanza massima è ridotta a
12
metri. Esistono anche aìtre norme, come la EIA-561, 562, 694 e 723, però le più importanti probabilmente sono t t^- t:^:-vt to Ltl)ltd
, . ^^ / ^^.+^Ld .)f/^,; /drA^l rDa -l^ uí --A^A / /cud LUr \ )( IJUI
la RS-422 e la RS-485, che saranno descritte in modo più approfondito.
COMUN)CAZ;TONI Ahre regole dellcl comunic.tzione serieile
i
L'obiettivo di una buona norma
SEGNATE CON DISTURBO
ì
c^ +rtcÍar'rra.l.+i Ll d)lcrJrc udLr d. +"^^,,^^,||cLluc||Ló
SULIA TIN:A
+2Vìj
+6v
I l
OV::: .)
, -*-óy-: :
SEGNATE CON DISTURBO SUUATTRA TINEA
matri rrrL rr I nrinrin:li. vr il rlrvoil.
fronr,^h-r ttcguE|4o c^ ut^i
stanza. Dato che la normativa R5-232-C non raggiunge questo obiettivo sono state sviluppate
i
+2Y
^l^ etc-
vata fra punti molto distanti. In ambiente industriale con alti livelli di rumore e interferenze, e dirf icile far convivere i due para-
i
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 logiri alto e hasso che r,rnoresentano i ,- ,"Y|
COPPIA
determinati dalta tensrone esistenîe srrlla linea risnetto alla massa comune. Nel modo differenziale, segnali non circolano su un cavo solo ma su due, e i livelli logici sono determinati dal'a differenza di tensione fra essi. Dato che il rumore influenza in modo uguale le
bit dei dati e di comando, sono SEGNALE
SEGNALE RICEVUTO
DA INVIARE
Collegamento di un trasmettitore e di un ricevitore in modo differenziale
i
drro linoo l: nlifforonz: ^--^ t^ il d e>>e ,, ,-J {"tu annulla e lo elimina, come si puo ttorloro d:ll: f inrrr: La comunicazione in modo differenziale di un trasmettitore e di
rrn rirOri lnrpL O r:nnro<^n+r+a VldL iuvprLrqlrLoLo ^.a ficamente con la simbologia imnlomont:i: noll: f inr rrr ll cnnn r Prsr r rqr rLo.o r rqilo r 9 u r o. ll )c9l ldle da inviare e il segnale ricevu'to possono essere di livello TTL, dopo i due dispositivi trasmettono e
VA SEGNALE
TRASMESSO.
-
VB SEGNALE TRASMESSO
ricevono nresta informazione in modo differenziale tramite i due
r:vi
A e R rhe nrondqpl6 il nome
,.li +,^,i-+-+ur -^^^;LUPVTO LVVr)LOLd. I segnali sui due cavi cel modo differenziale sono invertiti (notate i cerchietti) e la sottrazione fra loro non solo azzera il rumore e le
VA-VB SEGNATE RICEVUTO
jnterferenze, ma raddoppia il livello del segnale risultante, come ll segnale lrasmes-so sui due cavi vtene sottratto per ottenere ìl segnale rìcevulo senza rumore
<i nrrn riodoro )r Puu vcucrq finrrr:
.*'!r:::]::*tÍ1r1111l1irlÍrììÌììì:ììùìììììììììlilldR&!]lli]!]!]!ffiss::ì:ì:flllsÌùù|iiìì!ììu
nrrfir:mnn+n 9roILoItEILg
nnllr ttEilo
COmUNIC;AZIONl Altre regole deller comuniceizione seriale
À/-^^i^-^
À l- li-+vlaggrore e la 0rsîanza l,^*^++i+^ -^^---t ^ Separa cne I emerrTore e
il ricevitore, minore SEGNATE
DA INVIARE
SEGNALE RICEVUTO
sara
la velocita di trasferimento. A 1200 metri la velo-
cità massima è di
100
di a 12 metri puo arrivare a 10 MbiVs. Con l'ohietîivo di noler colleKbiVs, a 120 metri è
1
MHz/s e
gare f ra loro vari dispositivi in rete, è necessario che la sezione di trasmissione
di ogni dispositivo sia ad -l+- i*^^-J^^-^,,-ndO dlrd llrlpcucr tLot 9uo
Collegamento fra due dispositivi che utilizzano la norma RS-422.
non e in funzione. In questo modo si puo trasmettere con un solo dispositivo e averne un rnsieme di 10
Un collegamento secondo la norma RS-422 necessita di cinorre linee o cavi due ner trasmettere l'informazione in modo differenziale, altri due per riceverla nello stesso 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.
ìn ascolto.
E molto simile alla RS-422, di seguito riportiamo alcu-
ne fra le orincioali differenze: 1". Nella stessa rete oossono funzionare srno a 32 sistem i emettitore/ricevitore. 2" ll maroine di tensione
in modo comune puo andare da +12 Y a -7
V.
3u. Se si cortocircuitano
i
due cavi twistati A e B, o -^ sr -i appilca -^^ti-- +.^ ^--i una se rra essr +^^-i^^^ ,11 ,,v E^ - 7 V, LCtt)tuttc +-ild îtz la corrente massima che t^[^.1^-^ o^ 250 -1.-^tL[ LUtd -^.\ )Otd il il ct tutc mA ner evitare che si danneggino. 4u. ll trasmettrtore e il ri-
cevitore, nella normativa RS-485, dispongono di un segnale di ENABLE che abilita o disabilita ilfunzion:mAntn In nrroctn mgl6 i dispositivi che non stanno
o ricevendo, possono essere scollegati dalla rete. 5u l'imnedenza minima
emettendo,
Colleoamento di vari disaositivi RS-485 in rete
di innresso deve essere periore a 10,56 KQ.
SU-
:lttt
COMUNICAZ;IONI
l$
Altre regole deller comuniceizione serierle ìsiìlll!itt*illtit;u:urrar*r*lrr,*a*lu${
RS-422 I.200
PARAMETRO
RS-232*C
Mossimo distonzo (metri!
t5
Mossimo velocifù {Kbit/s)
20
Modo di funzionomento
COMUNE
DIFFERENZIATE
Numero emeltitori/ricevitori
r/r
Mossimo lensione di uscito
t25V
Sensibililò di ingresso del ricevitore
r3v 3k-7k
llo -O,25V +óV !2OOmV 4k mín
Resislenzq di ingresso del ricevitore
to.ooo |
ì
RS-485
,
t.200 ro.ooo
.
DIFFERENZIAIE
|
,,
.
.
t
r/32 -7 +l2Y !2OOmV l2k min
Principali specifiche delle norme RS-232, RS-422 e RS-485
che la distanza che permette questa rete puo superare il chilometro, è molto adatta alle installazioni industriali per la raccolta dei dati e l'attivazione di differenti attuatori. Po
Se non si utilizzano ripetitori intermedi si possono collegare sino a 32 unita di carico, con due resistenza di terminazione da 120 A. Questo suppone che ogni emettitore RS485 debba fornire una corrente di 57 mA, cosi le 32 unita di carico insieme alle re-
Analog Devices. Si tratta di un circuito integrato a B piedini che permette dr soddisfare le norme RS-485 e RSÀ rinnr+:+r nnllr {in"r: rinrndnto l: rr -.-,ri niodin:f r,.--,,.-.*,d1;.r C llPUl toLO Ilclro llVUlu rrVrvuvL ta qur sotto.
L))
1
L'ADM1485 è un trasmettitore/ricevitore in modo difforonzi:lc nrnntrttato npr l':rronni.emonto alle nofv!'IuLLv|/v
Vcc
sistenze di terminazione consumano mA onnrna |'imnedpnza massima di ingresso sara superiore a 10,56 Kf2, in modo che applicando all'ingresso una tensione di 12 V, la corrente non sia superiore a 'l mA. 1
ENABLE
B
ENABLE
A
Quando l'ambiente è molto ostile, si raccomanda di utilizzare del cavo schermato, 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 considerevole con I'ulilizzo di ripetitori e ricevito.,..1 -l+- i-^^,.i^^-I ou otLo il |PguEt t4o.
Piedinatura del circuito integrato ADM14B5
Nella tabella in alto si pone in rilievo la
dif'erenza fra i diversi parametri delle norme RS-232, RS-422 e RS-485.
Dato il diffuso ulilizzo di dispositivi accoppiati allo standard RS-485, i costruttori di circuit, integrati, dispongono di una linea di prodotti destinati a risolvere l'adattamento 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. |LOVVTO ri tensiono -,,^"- LVI I Ur I .-^^^ rnmnrpqo lqllVE Ur LCr rjrvr rs LUr rrPrq)v frlra +1 2 V e -7 V Permette velocita di trasferimento che arrivano sino 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 connessione diretta di 32 dispositivi in rete, anche se e possibile att;vare un solo trasmettrtore per volta.
F
$COÍNUN]CAZIONI lnternel
utili di Internet
Indi rizzi
blrp/ri',erlkee.respana
-Piog hinr Sezione rn cui si pubblicano informazioni relative alla pro-
f
Ìii: /lvwv,,l.cs
iiil
,ri"i
r lcqr-trinlíac\ùa s ila iqaÌe.oigiccri[r/ccinp rcbct'cs.']t
ilr.v marigaie orqisli/sct.eleiìfof cs
iiitl./iir'i,.'r,',
fcrri.
sc
Das cs
i'-"c.aà1:aRR/afci'ri,esll99-c/aiiìÌ'ci.tiri
i
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
grammazione di microcontroller, oltre a varie utility ed esempi di programmazione. In questo momento possiamo trovare un manuale di JAL (.Just Another Language), un linguaggio di programmazione di alto ìivello per microcontroller PIC che assomiglia molto al Pascal.
s
:'1ip./,.,,'r l'r.'i,V ledey;.'1pr;/lO:'OS:
n
.è 1 :-i:..'I1-".
it
p
://,mr,lru
a l-r.vr
li
i
a rn s.
co mr'wii
5gn
:,:I,l.i,t.,r'r,ij..,].!::iì.i-..:È1.ìai:5€.rr::-.,-ì:'i^;ii::l
.'
r/sta rc pf jtltS,tl:AS:f
a
q htrii
_.ti ì-,- :,
-ì
Pagine in cui si possono trovare manuali, e risposte alle
litp /ib*e. re be. k'l 2. wr;. u:/'J:v,scre:'l ecl9B. h tm vnrci+', Prnno-tri LE9u .l:ll, uo'rd l\4îrchal' lvldl)l loll IIn ullìvEl)lLy. I ru9ELLr rnn !Vrr Ionn t,&À-r' J_ld ses. rtu,f,ù jd""G "f ,:-i fr *d I r:q i,k i*.{: r,..1*.ì lbs n"' :
Ft
llavi-r Creeh
-.;ù
i
-::,
*::#
ì
- l iE
": 1::t"lt ?""-'"*
Èl+*lr*tîrT
domande piu frequenti (FAQ) sui moduli Basic Stamp, basati sui microcontroller PIC e molto utilizzati nella costruzione di microrobot.
. -:i;*
iirJrlvirir.v;in-cu-llll-954heinll| !nèa!
:'
Universidad Politecnica de Madrid. :--*
Prujetts 199S99
àni.;.. ,!útÍtNlùrín'r'g?5.espù3!n*tuùjJ:!úrúd!ds*!!ir.drìraùft si$d.r!ùJNFd.!{€Jau 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 '\É @ ùlSd{ ro $d;rÈ 51.ù tnr'r5. rG&rff Aúiùúr! fr' !ì?1d r!! L. ij!ùasrl \I&J P.?d,q4ù ùrú. i! rùùs, ie;il! rú !irnÈ1rr:r $r ìnt I tÉ! Ji! \il l*d rii* r9È lebtDi !ùì& i lJsi*r r:'* ijj_# t:::.* *:::* È
.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 Ch
-ì
di
intelligenza artrficiale dell'Universita
di
icago
i: :1,",.,'!i. r, .--:..!1.:r i-,,,:::
Progetti per iÌ
PlC.
r-;ji;:'', . ;';i;".;r-,:-:' Ki'fs per la costruzrone di robot, dal livello scolastrco 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 funzionanti a pannelli solari. Inoltre sono in vendita kit singoli, come ad esempio il sonar, adatti ad essere montati 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 htÌp.//www. m icrobotica es/f lota htm Schede e microrobot comoleti basati srrl 68hc'l Motorola. r
1
di
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.
inl robotica, manuali ecc basati sul
http./1rr,;vr."rrr sia
in
0se n c iase cc
Prodotti di Stamp di Parallax.
Basic
, .,i./l .
. '. Lr.i _. Oul ! Pagina di un gruppo con diverse cose e links. ..
$
, F
,..-;lllfi
COTI'IUN)CAZiIONI
illlrrr,nrrrr,",trrrrilllr*
q#,9, .?p***sffiè*,i,
ry @
lnlernel
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 lnirror<it: di lhir:nn i
http :/lww,rv. e n g. f
i
u. ed
i/r n
dex. htm
I
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 Gruppo dell'Unrversità di Edimburgo
htip /lwww. r'obotics !."eci ul Universita o Circi^nati
i
-Ì, / .,..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-{$-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
lit+llwww.
struttlrata.
rnlor uva e
59_!1!a
Argomentr di un corso di introduzione alla programmazione strutturata.
COMUNICAzlTONI
+e6'+..jlJà A&!q* jlrd6 Ílt@ J:1'J:::'J+g !*lelqilft{ry"I1ry^frt.q'*h,tulffi
*-l
*s!Me*-*..
:....-..,.--* -*-
pt*Ff0rfajnèr.. :r{la {resè1al r
pr t*
!s*.
-
Jl
I
i3L^i@ rtuÈ
+@À
J
;j-J-i:,:rg
:r:.'::i:---:--"---.-i-e-l:-::.:.::-.9**".*:*:*.:*"-,-"q"-...:,:-:.:.,.-,..-"..""*"=-"""-.--..---.-...--
-*
-
-+
rJ9
*ffiffiffi*ffi*"msw-wm iÉ+ f +€*ttèÉ +E SÈs*las€r:*$:
SM1gsqqrye
à
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
@@l @t @@t @ i@ @
púa
a
. Sé.ur€ DarórEncodèÈ/OecÒder5) . BlSCAil LIN USB
e**irery
É*!ff!É.@"._
Programaciér Mrdular t!
L
pr.gmdú
ru,1úld
dipr# aa e à$de
cîdúril udef'end.trtu.nts dt
en
wùùn lp*s
0ras úódrlos. Cada m0 dr
los tuóduli! soi Bdryflùes ft rl ffi pBti0s subùadrld. Sn mb"dg
ndeps!ùdkt,
ilbs úóú!0s
r ilalEe
cada
w
cod6cm
Ce
I
bl ruer
rinil
a
eF:úa
u
úm?
arMùd , ùÈ I
r
puto poJ srymdo
dÌ què liqb Eóód0 pedè hu ac.es0 dhedo a ruaÌqsier .tu nòddo scefs reslalN pndudas Fî th ùidtb tu &asr úibalEparctdlryjs:,h ftjd1Ìo
sstú
el
a. 16
sil
{úùls al $e llea y lÒ s rnsise a
http.//www. microch p.com Costruttore dei microcontroller PlC. i
ia nrftEFiÈ3c!6É
ÉfiÈtg €-éaég!9-.: iodrkodo
pr@i Se iadoli to,lo l0 qrs sftd.; r lasiff dmlE eÌ {snaúl aÌ Eóddo pdmipai mdo * debffi Íetds en 0tù edduln ùis Fqudos l* [€r
progrmd
iùbùódùi0 ÉdE
mndrbhrpu L,.
ryrdo
.r
r
Ì0
dhs dù0, ùbe nmflmtrs $È cada!.ogmÀ rodms u oo,tùI, ù,rmido R dmódulq, & úod r e? dG rwdd ryÈ su! !ftús. s sùitrg0, .aùs
^úoL
m ha S! li kra rya& r mda sulnóùl0 e denm,Jo coopleja prd:ft) w raladc ypodr rts$eriús mm alc^Mr s mb{ùe ladls
lrya ccqlshdù a
uÒ(J} qu
]
"
ldo. r. i:r...r. lsocloqueùmhs!ìnsyahrqueftúmpor0i.tud.rrord0i:rpuùrdtrrsmr!Íu,ptrùyhs,$e!c ìùeo. i mdÀwión si hkí dr rjatftf ùda Bc dr rts puhs m w r,.b]ffia 'dr la nda Diúmt
lqdl
wurv.parallaxinc.corn Ham.ntdllÈ5 rtu lri ù!.. Níin rr 3451C SlihÉúd ù.SX.(ér.
http ://www. lonnr
re
t
o
uc. c l/cu
rso d ist/cbc/textos/teo rial
html
Accesso condizionato da auforizzazione partire dall'inàirizza (onrrénto'
http.//puc.cl Informazioni complete sui linguaggi di alto e basso lìvello, programmazione strutturata, struttura di un linguaggio. 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
Interessante pagina dove sì illustra un corso su un lin-
Distributore di prodotti per PIC in Europa.
guaggio
di
conn/
programmazione strutturata, tenuto dal
professor Carlos A. Diaz Aponte.
http.//www. 4.html
ro pe.
itl p. ed u.
mx/p
ub
I i
caltuto
http ://www. pa ra laxi nc. co m/ Strumenti di sviluppo per il BASIC Stamp, basati sul PlC. I
ri a
les/pasca llu 1 _ 1 _
Descrive le strutture di programmazione più comuni.
usm cro. com/ produce Azienda che strumenti di sviluppo per microcontroller PlC.
http ://www.
si ri
i
http://mailweb pue udIap mxi -asan clez/is15A/rs/19 .htm Accesso 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 metodologia
della programmazione inerente alle strutture, agli operatori ecc., che tratta sia gli aspetti teorici sia quelli pratici.
http.//www. rentron. com/ Strumenti per il PlC. http ://www. control led.com/pic. html Lista di induizzi dr aziende fornitricr di prodotti relativi al PIC.
http://www.vmdesi g n.com/ Simulatore di microcontroller.