Microrobotica Monty Peruzzo Editore - 04 - Comunicazioni

Page 1



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

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

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:

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.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.