Skip to the content.

Torna a reti di sensori

Codifica di bit

La codifica dei bit si esegue in trasmissione ed è il processo di traduzione di ciascun bit di un messaggio in una certa sequenza di segnali elettrici caratterizzati da proprietà fisiche stabilite da standard internazionali. Alcune di queste caratteristiche sono forma, ampiezza, periodo. In definitiva, è una traduzione da simboli (binari) in segnali elettrici.

La decodifica dei bit si esegue in ricezione ed è il processo di traduzione di ciascuna sequenza di segnali elettrici ricevuta in una certa sequenza di bit. In definitiva, è una traduzione da segnali elettrici a simboli (binari).

Codifica manchester

Nelle telecomunicazioni la codifica Manchester è una forma di comunicazione dati nella quale ogni punto viene segnalato da una transizione. La codifica Manchester è considerata una codifica auto-sincronizzante (non necessita di un segnale di sincronia esterno), il che significa che permette un’accurata sincronizzazione del flusso dati.

alt text

Codifica NRZ

Nelle telecomunicazioni, un codice di linea di non ritorno a zero (NRZ) è un codice binario in cui gli uno sono rappresentati da una condizione significativa, solitamente una tensione positiva, mentre gli zeri sono rappresentati da qualche altra condizione significativa, solitamente una tensione negativa, senza altra condizione neutra o di riposo.

alt text

A dispetto della codifca Manchester, la NRZ non è considerata una codfica autosincronizzante perchè lunghe sequenze di tutti zero o di tutti uno non presentano neppure un fronte per tutta la loro durata.

Codifica 4B5B

Nelle telecomunicazioni, 4B5B è una forma di codice per la trasmissione di dati. 4B5B lavora mappando gruppi di 4 bit in gruppi di 5. Siccome ci sono 32 possibili combinazioni usando 5 bit e solo 16 usandone 4, i 16 gruppi di 5 bit col maggior numero di transizioni sono usati per fornire più transizioni possibili. 4B5B garantisce almeno una transizione per blocco (ingresso di 4 bit / uscita di 5) il quale permette al segnale di essere scoperto. Sfortunatamente l’uso di 5 bit per rappresentarne 4 implica che per trasmettere i dati abbiamo bisogno di una larghezza di banda più grande del 25%.

Dipendentemente dallo standard o dalle specifiche, potrebbero esserci diversi caratteri che 4B5B non usa. La presenza di uno dei caratteri “inusati” nello stream di dati può essere usato come indice di un problema nella connessione. Infatti, i caratteri non usati vengono attualmente usati per scovare gli errori negli stream di dati.

alt text

Con la codifica 4B5B vengono risolti i problemi relativi alla trasmissione di più zeri consecutivi. Le sequenze generate vengono poi trasmesse attraverso una codifica NRZI (Senza ritorno a zero invertito), che elimina anche il problema della presenza di un numero eccessivo di 1 consecutivi. Il risultato è che la codifica 4B/5B elimina ripetizioni consecutive di un numero eccessivo di valori binari tutti uguali.

Protocolli

I protocolli sono regole di comunicazione che tutti gli interlocutori devono seguire per portare avanti la comunicazione su di un canale. Un protocollo definisce il formato e l’ordine dei messaggi scambiati tra due o più entità di rete, le azioni in risposta ai messaggi ricevuti o altri eventi. Sono valide per un determinato canale e si realizzano in maniera software (o al limite con logica digitale cablata) tramite programmi che girano sui nodi della rete.

Realizzano algoritmi distribuiti che comprendono:

Formato messaggi

Definisce cosa va comunicato, il come e il quando ciò va fatto. Gli elementi chiave di un protocollo sono: sintassi, semantica, temporizzazione.

alt text

Il formato è definito indicando:

Per accedere (in lettura o in scrittura) a un determinato campo basta sommare la lunghezza dei campi che precedono il campo da accedere per determinare il suo spiazzamento dall’inizio del messaggio.

Tipo dei messaggi

I messaggi si possono classificare in:

I messaggi si possono classificare in:

Preambolo di sincronizzazione (di bit)

I preamboli di un messaggio sono delle sequenze di sincronizzazione in grado sia di sincronizzare gli orologi dei dispositivi (Tx e Rx) che si accingono ad iniziare una comunicazione, ma anche di indentificare in maniera univoca i dispositivi che li emettono.

La sincronizzazione di cui parliamo adesso è la cosidetta sincronizzazione di bit e serve a fare in modo che, al momento di una transizione (fronte) del clock, sia il dispositivo TX che quello RX siano posizionati esattamente sul ventre di un bit, cioè sul punto di mezzo del livello del bit, condizione necessaria in ricezione per ottenere la massima probabilità di campionare (misurare o decidere) un bit corretto. La sincronizzazione di bit, in sostanza, serve a fare in modo che il ricevente RX legga il bit nel punto più stabile, in posizione centrale rispetto ai fronti (di salita e di discesa).

alt text

Il momento giusto di questa misura è implicito, cioè non viene segnalato dal trasmettitore, ma deve essere estratto (dal ricevitore) dal flusso di bit dei dati e mantenuto almeno per tutti i campionamenti dei bit del messaggio corrente. Per il messaggio successivo il ricevitore recupera il sincronismo leggendo un nuovo preambolo.

L’estrazione del clock avviene in banda, cioè sullo stesso canale dei dati, attraverso il riconoscimento dei fronti dei bit ricevuti, fronti che sono sicuramente presenti, in numero sufficiente allo scopo, solamente durante un preambolo di sincronizzazione.

Tutte le tecniche di multiplazione del canale (broadcast o meno) basate sulla ripartizione del tempo di trasmissione tra sorgenti diverse (TDM), richiedono una sincronizzazione di bit elevata. Però, non tutte le tecniche richiedono la sincronizzazione del messaggio trasmesso tra TX e RX. L’RX non è normalmente tenuto a sapere l’esatto momento dell’arrivo del prossimo messaggio.

Start of frame (SOF)

Per i protocolli in cui il messaggio è asincrono, cioè di cui il ricevente non conosce in anticipo il momento esatto della ricezione, l’inizio dello stesso deve essere segnalato in qualche modo. Lo Start Of Frame (SOF) serve a realizzare il cosidetto sincronismo di trama (o di messaggio), cioè la proprietà per la quale trasmettirore TX e ricevitore RX concordano su quale sia il bit di inizio della trama (o del messaggio):

alt text

Il valore di SOF per IEEE 802.3 (EThernet) è 10101011. Il ricevitore esegue la lettura continua dei bit del canale e quando vede scorrere esattamente quella sequenza sa che a partire dal bit successivo all’ultimo dell’SOF deve cominciare a leggere un messaggio, contando i bit per identificare, isolare e leggere separatamente i vari campi di cui è composto il messaggio ricevuto.

Trama MAC

E’ il messaggio

alt text

Una trama Ethernet è un pacchetto di dati che viene trasmesso su una rete Ethernet. È composta da una serie di campi che contengono informazioni cruciali per la comunicazione tra i dispositivi collegati alla rete. Ecco una panoramica dei campi principali all’interno di una trama Ethernet:

La struttura e il significato di questi campi possono variare leggermente a seconda dello standard Ethernet utilizzato, come ad esempio Ethernet II o IEEE 802.3.

Classificazione protocolli

I protocolli si possono classificare in:

Protocolli connessi e non

I protocolli connessi sono sempre composti da tre fasi:

I protocolli non connessi sono sempre composti da una sola fase:

I protocolli connessi realizzano connessioni intrinsecamente più affidabili perchè presuppongono che all’altro capo della comunicazione ci sia sempre un interlocutore pronto a ricevere i messaggi, dato che essa è stata da questo esplicitamente accettata in fase di apertura. I protocolli connessi pongono in genere l’enfasi sulla affidabilità e sulla correttezza dei messaggi.

I protocolli non orientati alla connessione (o semplicemente detti non connessi) realizzano comunicazioni in cui il mittente si limita semplicemente a spedire i messaggi senza curarsi affatto se all’atro capo della comunicazione ci sia effettivamente un interlocutore pronto a riceverli. I protocolli non connessi pongono in genere l’enfasi sulle prestazioni in termini di velocità e sulla puntualità della consegna dei messaggi.

Protocolli confermati e non

I protocolli confermati sono protocolli in cui il mittente possiede un timer, detto timer di ritrasmissione, impostato ad un valore massimo di conteggio detto timeout. Il timer viene avviato al momento esatto dell’invio di un messaggio e viene resettato al momento della ricezione di un messaggio di conferma di corretto arrivo a destinazione.

Il messaggio di conferma viene detto ack (acknowledgement) e viene inviato dal ricevente in direzione del mittente. Un ack è sempre inviato dal ricevente di un precedente messaggio, mai dal mittente di quel messaggio.

Se il timer di trasmissione è resettato prima dello scadere del timeout la trasmissione è considerata avvenuta con successo. Se invece allo scadere del timeout ancora non si ricevono ack allora il messaggio viene dato per perso ed è, dal mittente, ritrasmesso.

I protocolli non confermati non necessitano di conferme mediate ricevute di ritorno e pertanto il tramittente è sprovvisto del timer che serve a questo a scopo.

Protocolli con stato e non

Un protocollo si dice stateful cioè con stato quando vale una delle due situazioni che rappresentano due facce diverse di una stessa medaglia:

Un protocollo si dice stateless cioè senza stato quando vale una dele due situazioni:

L’elemento di memoria che tiene traccia dello stato può essere anche un campo all’interno del messaggio opportunamente aggiornato ad ogni nuovo invio.

L’evoluzione degli stati di un protocollo può essere rappresentato in funzione del loro valore e del particolare messaggio che è stato ricevuto mediante un diagramma delle transizioni di stato:

alt text

I nodi sono gli stati mentre gli archi rappresentano gli stimoli ai cambiamenti di stato, ovvero gli ingressi, cioè i messaggi ricevuti.

Dettaglio ES/IS

Dettaglio protocolli

Dettaglio ISO/OSI

Sitografia:

Torna a reti di sensori