Elettronica applicata/Collegamenti seriali: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
uso gallery
Riga 24: Riga 24:
====Protocollo SPI====
====Protocollo SPI====
Il '''protocollo {{tooltip|SPI|Serial Peripheral Interface}}''' viene usato soprattutto per la comunicazione tra processore e periferici: il master tramite il chip select (CS) seleziona lo slave, invia ad esso dei dati di comando e lo slave restituisce al master dei dati in una sorta di anello:
Il '''protocollo {{tooltip|SPI|Serial Peripheral Interface}}''' viene usato soprattutto per la comunicazione tra processore e periferici: il master tramite il chip select (CS) seleziona lo slave, invia ad esso dei dati di comando e lo slave restituisce al master dei dati in una sorta di anello:
<div style="text-align: center"><gallery mode=nolines widths=200px heights=250px>
<table border=0 style="border-collapse: collapse; text-align: center; margin-left: auto; margin-right: auto">{{#if:|<caption>'''{{{titolo}}}'''</caption>}}<tr>
Protocollo SPI con CS multipli.png|Configurazione con CS multipli
<td>{{#if:|{{#if:Configurazione con CS multipli|[[File:Protocollo SPI con CS multipli.png|thumb|center|{{{dim}}}|Configurazione con CS multipli]]|[[File:Protocollo SPI con CS multipli.png|thumb|center|{{{dim}}}]]}}|{{#if:Configurazione con CS multipli|[[File:Protocollo SPI con CS multipli.png|thumb|center|Configurazione con CS multipli]]|[[File:Protocollo SPI con CS multipli.png|thumb|center]]}}}}</td><!--
Protocollo SPI con CS singolo.png|Dispositivi collegabili in cascata con un unico CS
-->{{#if:||<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>}}
</gallery></div>
<td>{{#if:|{{#if:Dispositivi collegabili in cascata con un unico CS|[[File:Protocollo SPI con CS singolo.png|thumb|center|{{{dim}}}|Dispositivi collegabili in cascata con un unico CS]]|[[File:Protocollo SPI con CS singolo.png|thumb|center|{{{dim}}}]]}}|{{#if:Dispositivi collegabili in cascata con un unico CS|[[File:Protocollo SPI con CS singolo.png|thumb|center|Dispositivi collegabili in cascata con un unico CS]]|[[File:Protocollo SPI con CS singolo.png|thumb|center]]}}}}</td><!--
-->{{#if:x||<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>}}
</tr></table>
{{clear}}
{{clear}}
===Clock unico generato dal ricevitore===
===Clock unico generato dal ricevitore===

Versione delle 23:16, 10 dic 2013

Indice del libro

Un bus parallelo è complesso: i segnali di temporizzazione viaggiano allo stesso tempo in parallelo alle informazioni, quindi è necessario tenere in conto lo skew per garantire i minimi tempi di setup e di hold. Un collegamento seriale si basa sul trasferimento sequenziale: i segnali di temporizzazione e le informazioni viaggiano sullo stesso filo in tempi diversi, quindi l'ordine con cui i dati vengono inviati viene sempre mantenuto al ricevitore, e inoltre un minor numero di conduttori riduce il consumo e il costo. Un ciclo di trasferimento parallelo era sufficiente per far arrivare i bit tutti insieme al ricevitore, mentre il trasferimento sequenziale introduce una latenza perché i bit vengono inviati uno dopo l'altro.

Interferenze
  • connessioni parallele: diafonia = interferenze tra conduttori vicini;
  • connessioni seriali: interferenza intersimbolica (ISI) = interferenze nel tempo tra un bit e l'altro.
Sincronizzazione

In una trasmissione seriale i clock del trasmettitore e del ricevitore devono essere sincronizzati:

  • sincronizzazione a livello di bit: devono essere risconosciuti i bit distinti tra loro;
  • sincronizzazione a livello di carattere: devono essere riconosciuti l'inizio e la fine dei byte;
  • sincronizzazione a livello di messaggi: riguarda il riconoscimento ad alto livello.

Sincronizzazione a livello di bit

Clock unico generato dal trasmettitore

Il clock è unico e si trova al lato trasmettitore → bisogna tenere conto solo delle variazioni del tempo di trasmissione (skew) tra i dati e il clock, perché il clock e i dati viaggiano nella stessa direzione.

Protocollo SPI

Il protocollo SPI viene usato soprattutto per la comunicazione tra processore e periferici: il master tramite il chip select (CS) seleziona lo slave, invia ad esso dei dati di comando e lo slave restituisce al master dei dati in una sorta di anello:

Clock unico generato dal ricevitore

Il clock è unico e si trova al lato ricevitore → bisogna tenere in conto delle variazioni di due tempi di trasmissione (due skew): uno per il clock dal ricevitore al trasmettitore, l'altro per i dati dal trasmettitore al ricevitore. Il ricevitore può regolare la velocità dei dati.

Clock indipendenti

Modem sincrono

Nella realtà è impossibile realizzare due clock perfettamente isofrequenziali → serve inviare insieme ai dati delle informazioni di sincronizzazione.

I dati di informazione durante la trasmissione sono soggetti a variazioni nel tempo (sfasamenti dovuti allo skew) e in ampiezza (rumori, distorsioni, ISI, variazioni della pendenza dei fronti) → la transizione LH del clock al lato ricevitore (anch'esso soggetto a skew e a jitter) deve avvenire entro l'apertura del diagramma a occhio, affinché siano garantiti il corretto riconoscimento degli stati logici e i tempi di set-up e di hold:

Il diagramma a occhio è ottenuto dalla sovrapposizione di tutti i possibili andamenti del segnale al lato ricevitore

Sincronizzazione a livello di carattere

La sincronizzazione a livello di carattere serve per riconoscere dove inizia e dove finisce ogni byte:[1]

  • collegamenti seriali asincroni: la trasmissione è discontinua, cioè tra un byte e l'altro ci possono essere dei momenti in cui la linea è a riposo;
  • collegamenti seriali sincroni: la trasmissione è continua, e tra un byte e l'altro può essere prevista una sequenza di bit riservata alla sincronizzazione.

Trasmissione seriale asincrona

Sequenza di caratteri in una trasmissione seriale asincrona

Quando la linea è a riposo assume uno stato prestabilito che si mantiene costante; ogni byte deve essere preceduto da un bit di start che assume lo stato opposto a quello della linea a riposo, e deve essere seguito da qualche bit di stop che assume lo stato a riposo.

Il numero di bit per carattere non deve essere eccessivo per garantire l'apertura nel diagramma ad occhio.

RS 232 è lo standard per le interconnessioni a livello fisico che usano la trasmissione seriale asincrona, ed è progettato per interconnettere i computer ai modem.

L'UART è un dispositivo in grado di trasmettere dei byte in modo asincrono tramite un collegamento seriale:

  • lato trasmettitore: un registro PISO converte i byte in sequenze di bit, e vengono inseriti i bit di start e di stop;
  • lato ricevitore: un registro SIPO converte le sequenze di bit in byte, e un modulo deve riconoscere i bit di start e di stop e al momento giusto generare il clock per il registro SIPO.

I serializzatori a due registri aumentano la flessibilità:

  • lato trasmettitore: mentre il registro PISO sta trasmettendo, un registro SISO può memorizzare il byte successivo da trasmettere;
  • lato ricevitore: mentre il registro SIPO sta ricevendo, un registro PIPO può memorizzare il byte precedente in attesa di essere letto da un dispositivo esterno.

Note

  1. Qui per semplicità si parla di byte, che sono composti da 8 bit, ma in realtà può essere scelto un qualsiasi numero di bit.