Anteprima
Vedrai una selezione di 3 pagine su 7
Protocollo I2C Pag. 1 Protocollo I2C Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Protocollo I2C Pag. 6
1 su 7
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Estratto del documento

Martini Francesco CL. 5 ECA 2007/2008

TESINA

OGGETTO: Studio di un sistema di comunicazione tra più dispositivi: il

Protocollo IIC ( Inter Integrated Circuit)

1.1 INTRODUZIONE:

Un sistema di comunicazione è un complesso di dispositivi e regole che gestiscono la comunicazione

affinché questa si portata a buon fine. Le regole che permettono questo sono chiamate protocolli. Uno di

questi è il protocollo IIC che è stato brevettato dalla Philips, il quale prevede la comunicazione di due o più

dispositivi attraverso l’utilizzo di un bus composto da due linee. Questo sistema di comunicazione è

presente in molti microcontrollori ma anche altri dispositivi integrano questo modello che gli permette di

comunicare. Un esempio di dispositivo che integra questo modulo di comunicazione è il microcontrollore

MC9S08QG8 della Freescale utilizzato per l’appunto durante l’area di progetto per realizzare un sistema di

comunicazione con questo protocollo.

1.2 SPECIFICHE DEL PROTOCOLLO:

Iniziamo chiarendo il concetto di bus attraverso il quale avviene la comunicazione. Come abbiamo già detto

è costituito da due linee una chiamata “sda” e l’altra “scl”: la prima è utilizzata per la trasmissione dei

pacchetti dati mentre la seconda trasmette il segnale di clock, indispensabile per la sincronizzazione dei vari

dispositivi. Gli stati, che possono rappresentare le due linee, sono i livelli logici alto e basso (1 e 0) che

corrispondono rispettivamente alla tensione di alimentazione e a quella di massa. Entrambe le due linee

vengono collegate alla tensione di alimentazione attraverso una resistenza di pull‐up che consente loro di

essere ad un livello leggermente inferiore di quello alto ma che permette hai vari dispositivi di imporre il

loro valore desiderato. In questa situazione se accidentalmente due dispositivi impongono un livello nello

stesso istante, il primo impone “1” mentre il secondo “0”, sarà l’ultimo ad imporsi sul primo.

1.2.1 IDENTIFICAZIONE DEI DISPOSITIVI:

Fondamentale nella comunicazione è saper identificare i dispositivi che comunicano o quelli a cui è rivolta

la comunicazione, e proprio per questo ogni dispositivo è caratterizzato da un identificatore formato da 7 o

10 bit. Quindi perché avvenga il riconoscimento prima di trasmettere il dato viene sempre trasmesso

l’identificatore del dispositivo. 1

1.2.2 CLASSIFICAZIONE DEI DISPOSITIVI:

In questo protocollo è fondamentale effettuare una distinzione tra i due tipi di dispositivi che possono

comporre il sistema, ossia il “master” e lo “slave”. Il dispositivo master è quello centrale, che genera il

segnale di clock per la sincronizzazione e che impartisce ordini e richieste di dati agli altri dispositivi, in un

sistema possono essere presenti più dispositivi master. Il dispositivo slave invece svolge la funzione di

eseguire funzione in base ai comandi del master oppure invia dei dati in base sempre alle richieste

impartite dal master. Si deve precisare che una qualsiasi comunicazione ha inizio grazie al dispositivo

master quindi si possono distinguere principalmente due modi di trasmissione:

I. Il primo quando il dispositivo master voglia inviare dei comandi al dispositivo slave: in questo caso

la comunicazione ha inizio con l’invio dell’identificatore del dispositivo con cui si intende

trasmettere, successivamente si può inviare il comando che sarà ricevuto dallo slave e infine sarà il

master a terminare la comunicazione.

II. Il secondo quando il dispositivo master vuole ricevere dei dati dallo slave: in questo caso il

dispositivo master invia l’indirizzo dello slave con la richiesta di ricezione dei dati, a questo punto è

lo slave che trasmette l’indirizzo del master seguito dall’informazione, anche in questo caso alla

fine il dispositivo master termina la comunicazione.

1.2.3 EVENTI DURANTE LA TRASMISSIONE:

Sostanzialmente sono due gli eventi che durante una trasmissione sono fondamentali per la riuscita della

comunicazione e questi sono la sincronizzazione e l’arbitraggio.

La sincronizzazione è indispensabile in sistemi in cui ci sono dispositivi che funzionano a velocità differente,

quindi c’è la necessità di sincronizzare i due clock in modo da non perdere informazione. Questo processo

avviene sfruttando la prevalenza dei semi periodi positivi e negativi nei due segnali di clock dei dispositivi.

Cioè quando in un intervallo di tempo tutti e due i segnali impongono scl a livello alto, la linea è

effettivamente a livello alto, poi avremo una semionda negativa che sarà uguale a quella maggiore tra i due

segnali di clock e una semionda positiva che è uguale a quella più breve tra i due segnali di clock. Nella

figura sottostante è rappresentato in maniera evidente come avviene la sincronizzazione:

Il secondo importante evento citato sopra è quello dell’arbitraggio, che consente la presenza di più

dispositivi che svolgono la funzione di master, riuscendo a gestire la comunicazione ed evitando che ci siano

dispositivi che nello stesso istante cerchino di trasmettere con relativa perdita di informazione. Questo

processo sfrutta la prevalenza del livello logico basso su quello alto, cioè quando ci sono due dispositivi che

vogliono iniziare la comunicazione e uno dei due impone il livello basso mentre l’altro quello alto, sui due

prevale quello basso che permette a quel dispositivo di continuare la comunicazione mentre l’altro si porta

in ricezione nel caso in cui si proprio lui il destinatario della richiesta o dell’ordine. Si può facilmente intuire

2

che è un metodo efficace che permette di evitare perdita di informazione. Anche per questo evento

troviamo in figura la dinamica dei vari segnali che intercorrono in questo intervallo:

1.3 ESEMPIO di TRASMISSIONE di UN SEGNALE:

Nella figura sottostante si può osservare un esempio di comunicazione che ci permette di osservare i vari

segnali come si comportano affinché la comunicazione avvenga in maniera precisa.

Nella figura si vede che ogni comunicazione inizia con la condizione di start che può essere formata soltanto

da un dispositivo che svolge la funzione di master dopo aver controllato che ovviamente il bus sia libero. La

condizione di start corrisponde a mantenere la linea scl a livello alto mentre la linea sda passa dal livello

alto a quello basso.

Successivamente viene inviato il primo byte che è costituito da 7 bit dell’indirizzo del dispositivo con cui si

intende comunicare ed un bit che rappresenta l’azione richiesta. Se questo bit è a “0” significa che il

dispositivo deve interpretare il dato che gli arriva come un comando che gli impone di effettuare una

determinata azione mentre se questo bit è “1” allora deve interpretare il dato come una richiesta di

informazioni che deve inviare al dispositivo che ha iniziato la comunicazione.

Fondamentale è che una volta che viene trasmesso il primo byte chi trasmette lasci la linea sda a livello alto

in modo che il dispositivo che ha ricevuto il dato possa comunicare l’avvenuta ricezione attraverso il

segnale ack. Questo consiste nel porre a “0” la linea sda in corrispondenza del nono impulso sulla linea scl.

Se non viene generato il segnale di ack chi ha iniziato la trasmissione può anche interromperla. Nella figura

sottostante si può osservare la generazione di questo segnale indispensabile per una corretta

comunicazione. 3

Se invece viene generato il segnale di ack allora si può passare alla trasmissione del byte relativo al

comando o alla richiesta che dovrà essere seguito dal segnale di avvenuta ricezione. Infine sempre il

dispositivo che ha iniziato la trasmissione ha il compito di interromperla attraverso la condizione di stop.

Essa consiste nel mantenere a livello alto la linea scl mentre la linea sda passa dal livello basso a quello alto.

Dopo aver spiegato la dinamica di una trasmissione nella rappresentazione sottostante si può osservare la

composizione di una comunicazione tra un master ed uno slave con invio di comandi.

Mentre in quest’ultima si può osservare l’invio di informazioni dallo slave verso il master.

4

1.4 ESPERIENZA DURANTE L’AREA di PROGETTO:

Come già accennato precedentemente questo protocollo IIC era stato studiato durante l’area di progetto

prevedendo il progetto di un sistema di comunicazione tra tre dispositivi microcontrollori MC9S08QG8,

numero che comunque poteva essere facilmente aumentato. Questi tipi di microcontrollori hanno un

modulo già integrato per la gestione di questo sistema di comunicazione, con le linee sda e scl predefinite e

dei registri che consentivano la configurazione del protocollo: un registro per impostare l’indirizzo del

dispositivo, un altro per selezionare il clock e la velocità di comunicazione. Inoltre la comunicazione

avveniva non appena il primo byte da trasferire veniva posto nell’apposito registro del micro e

successivamente, ad invio avvenuto, si generava un interrupt per consentire di aggiungere altri pacchetti da

inviare o istruzioni da fare.

Da notare nella figura sottostante lo schema a blocchi per gestire l’interrupt della trasmissione in base a

questo protocollo: Y N

trasmissione/ricezione

Y Y

Ultimo byte trasmesso? Ultimo bit ad

essere letto?

N N

N

Segnale ACK Y Penultimo byte ad

Y Disabilita ACK

Y essere letto?

Impostare Master deve

modalità N

ricevere dati?

ricezione Genera segnale

stop

N

Scrivere prossimo Generare

Lettura registro dati byte nel buffer segnale di stop Leggere e

Salvare il buffer

Ritorno

In questo schema a blocchi si può vedere lo studio della situazione nel caso in cui il dispositivo fosse stato

un master: fondamentale inizialmente è capire se il master deve ricevere o trasmettere e quindi

successivamente controllare se i byte sono stati trasmessi e ricevuti agendo nei vari registri e controllando

quei segnali di controllo come il segnale di ack. 5

Dettagli
Publisher
7 pagine
145 download