Codifica

Avendo stabilito il mezzo di comunicazione è necessario che i dispositivi di trasmissione e ricezione si “accordino” su come misurare l’informazione (i bit) sul mezzo di trasmissione. Ad esempio, se sul cavo di rame si pattuisce che una tensione di +5V indichi un bit 1 mentre una tensione di 0V indichi un bit 0, rimane il problema di decidere “quando” misurare la tensione per rilevare i bit.

Ad esempio consideriamo il seguente segnale dati.

Può sembrare naturale associare a questo segnale la sequenza di bit 010110011, tuttavia la “corretta” sequenza di bit dipende da “quando” il segnale viene misurato e quindi dal clock che viene usato per la sua temporizzazione. Il seguente esempio

Mentre il primo clock (secondo segnale in figura) porterebbe alla ricostruzione sopra indicata (cioè 010110010), il secondo clock darebbe come sequenza 00100).

Codifiche

Risulta quindi chiara la necessità di mettersi d’accordo sul modo di decodificare i bit a partire dal segnale presente sul mezzo di comunicazione.

Non Return to Zero (NRZ)

Nella codifica Non Return to Zero (NRZ) il segnale viene letto ad intervalli periodici sulla base di un clock. Tipicamente il segnale ha due valori di segno opposto per i bit, ad esempio +5V per il bit 1 e -5V per il bit 0 Ad ogni lettura il segnale codificato in NRZ rimane al livello corrispondente senza mai ritornare ad un livello di base (lo zero), da questo deriva il nome della codifica.

Non Return to Zero Inverted (NRZI)

Anche se il nome ricorda la codifica NRZ, in realtà Non Return to Zero Inverted (NRZI) è molto diversa da NRZ. Nella codifica NRZI, infatti, è importante il fatto che ci sia o meno una transizione da un livello ad un altro (ad esempio da +5V a -5V). Più nello specifico NRZI misura il segnale utilizzando un clock e sceglie il bit con la seconda regola:

  • se il segnale è cambiato di valore rispetto alla misura precedente, allora il bit è 1,
  • altrimenti (segnale uguale alla misura precedente) il bit è 0.
Attenzione

Sia la codifica NRZ che la codifica NRZI necessitano che le due parti comunicanti si scambino anche il segnale di clock. Questo è spesso un problema perché richiede l’utilizzo di un ulteriore canale di comunicazione dedicato al clock oltre che ad un meccanismo di sincronizzazione del clock. Proprio per evitare la necessità di un segnale di clock condiviso, sono state proposte diverse codifiche tra cui la codifica Manchester che è l’argomento del prossimo paragrafo.

Manchester

Nella codifica Manchester, i valori 0 e 1 vengono associate alle transizioni del segnale da un livello ad un altro. In pratica il segnale viene interpretato nel seguente modo:

  • il passaggio dal valore alto al valore basso viene associato al bit 1,
  • il passaggio dal valore basso al valore alto viene associato al bit 0.
Osserva

Nella codifica Manchester descritta sopra il passaggio da basso ad alto si associa ad un valore 1, tuttavia sarebbe possibile associare tale transizione al bit 0 (e la transizione opposta al bit 1).

In questa lezione abbiamo scelto la prima convenzione che è quella adottata dagli standard IEEE (ad esempio IEEE 802.3).

  • Michele Schimd © 2024
  • Ultimo aggiornamento: 17/02/2024
  • Materiale di studio e di esercizio per gli alunni dello Zuccante.

Creative Commons License