Elettronica applicata/Collegamenti seriali

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 riconosciuti 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 modifica

Clock unico generato dal trasmettitore modifica

 

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 modifica

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 modifica

 

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 modifica

 
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 modifica

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 modifica

 
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 modifica

  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.