Reti di comunicazione per sistemi di controllo - LAR-DEIS Home … · 2004-06-01 · Livello di...

25
1 Reti di comunicazione per sistemi di controllo Prof. Carlo Rossi DEIS Motivazioni Grande quantità di segnali che devono essere scambiati all’interno di un sistema di controllo complesso Segnali da sensori e attuatori Segnali tra diverse unità di elaborazione nel caso di sistemi distribuiti Anche nel caso di elaborazione centralizzata, lo scambio di segnali tra sensori ed attuatori in maniera analogica presuppone collegamenti punto-punto, con cablaggi complessi Costo Manutenzione Flessibilità Robustezza e affidabilità Utilizzo di reti di comunicazione seriali Problematiche Le reti per sistemi di controllo (in tempo reale) presentano problematiche diverse rispetto alle normali reti di dati Dimensione dei dati: le informazioni scambiate sono normalmente di dimensione ridotta: caso tipico il valore temporale di un variabile Requisiti temporali: l’informazione deve giungere a destinazione entro un tempo stabilito; in caso contrario essa perde di validità Ritardo di trasmissione: introduce un ritardo negli anelli di controllo che portano ad un degrado delle prestazioni Il canale seriale è necessariamente un canale a divisione di tempo: quando il canale è occupato con un messaggio, tutti gli altri non possono passare Il ritardo di trasmissione è determinato in massima parte dal tempo di attesa per accedere al mezzo trasmissivo Le considerazioni precedenti hanno impatto sia sulle caratteristiche HW (topologia) che su quelle SW (protocolli e servizi) della rete

Transcript of Reti di comunicazione per sistemi di controllo - LAR-DEIS Home … · 2004-06-01 · Livello di...

1

Reti di comunicazione per sistemi di controllo

Prof. Carlo RossiDEIS

Motivazioni

Grande quantità di segnali che devono essere scambiati all’interno di un sistema di controllo complesso

Segnali da sensori e attuatoriSegnali tra diverse unità di elaborazione nel caso di sistemi distribuiti

Anche nel caso di elaborazione centralizzata, lo scambio di segnali tra sensori ed attuatori in maniera analogica presuppone collegamenti punto-punto, con cablaggi complessi

CostoManutenzioneFlessibilitàRobustezza e affidabilità

Utilizzo di reti di comunicazione seriali

Problematiche

Le reti per sistemi di controllo (in tempo reale) presentano problematiche diverse rispetto alle normali reti di datiDimensione dei dati: le informazioni scambiate sono normalmente di dimensione ridotta: caso tipico il valore temporale di un variabileRequisiti temporali: l’informazione deve giungere a destinazione entro un tempo stabilito; in caso contrario essa perde di validitàRitardo di trasmissione: introduce un ritardo negli anelli di controllo che portano ad un degrado delle prestazioni

Il canale seriale è necessariamente un canale a divisione di tempo: quando il canale è occupato con un messaggio, tutti gli altri non possono passareIl ritardo di trasmissione è determinato in massima parte dal tempo di attesa per accedere al mezzo trasmissivo

Le considerazioni precedenti hanno impatto sia sulle caratteristiche HW (topologia) che su quelle SW (protocolli e servizi) della rete

2

Architetture HW

Tecnologie trasmissiveCavo: doppino, coassiale, ecc.Fibra otticaWireless

TopologiaBroadcast: unico canale di comunicazione condiviso da tutte le macchine della rete

I pacchetti sono inviati dal trasmettitore sul canale e ricevuti da tutti gli altri host. Ogni pacchetto contiene l’indirizzo del destinatario. Ogni macchina controlla l’indirizzo e decide se il pacchetto era indirizzato a lei o può essere scartatoSi possono indirizzare anche tutte le macchine contemporaneamente (broadcasting) o un sottoinsieme (multicatsing) tramite indirizzi speciali

Punto a punto: connessioni dedicate tra coppie di macchineNecessario definire il cammino per trasmettere tra due macchine non fisicamente connesse

Reti broadcast

Reti a busIn ogni istante un solo nodo trasmette (master)Necessario arbitraggio, centralizzato o distribuito

Reti ad anelloI singoli bit vengono inviati fatti circolare sull’anello, in un tempo tipicamente inferiore al tempo di trasmissione del pacchettoNecessario arbitraggio per accessi simultanei all’anello

Nodo

Bus

Rete a bus Rete ad anello

Reti Broadcast

Reti ad allocazione statica del canaleIl tempo viene suddiviso in quanti, ed ogni nodo può eseguire ilbroadcast solamente in corrispondenza del quanto assegnato al nodo stessoSe un nodo non ha nulla da trasmettere il quanto rimane inutilizzato: l’allocazione dinamica in questo caso non utilizza tutta la banda disponibile

Reti ad allocazione dinamica del canaleControllo centralizzato: esiste un master che determina il prossimo nodo che deve trasmettereControllo decentralizzato: ogni nodo decide autonomamente se iniziare a trasmettere.

Sistemi a collisione: è possibile che più nodi trasmettano contemporaneamente; le collisioni devono essere rilevate e risolteSistemi a token: ogni nodo trasmette quando è in possesso all’abilitazione data da un token; alla fine della trasmissione, invia il token ad un altro nodo che può a sua volta trasmettere

3

Sottorete

Reti punto a punto

Per reti di dimensioni maggiori, normalmente più reti locali vengono connesse tramite una sottorete di tipo punto a puntoOgni nodo della sottorete svolge le funzioni di router

I pacchetti in ingresso vengono memorizzati e poi successivamente riinviati verso la destinazione finaleLa problematica maggiore è quella della definizione del cammino che ogni pacchetto deve seguire per ottimizzare le prestazioni della reteSe più pacchetti relativi allo stesso messaggio seguono cammini diversi, è necessario gestire anche la sequenza con cui essi vengono ricevuti

Router

Situazioni ibride

Bridge

Reti broadcast, anche diverse tra di loro, connesse tramite una rete ancora broadcast• diminuzione delle possibilità di collisione• larghezza di banda maggiore• è la situazione più frequente in applicazioni di controllo complesse e di dimensioni rilevanti

Classificazione delle reti

Local Area Network (LAN)Reti private di dimensioni ridotte, normalmente all’interno di una istituzione e di dimensioni da pochi metri fino a pochi chilometriNormalmente reti broadcast

Wide Area NetworkReti che coprono una area geografica estesaLa connessione su larga scala è realizzata tramite sottoreti

Linee di trasmissione e Router per la commutazione

Esistono altri tipi di retiReti metropolitane, che coprono le dimensioni tipiche di una cittàInternet di dimensione mondiale

La dimensione di una rete ne limita le caratteristiche realizzative: reti estese non possono essere di tipo broadcastLe reti di interesse per i sistemi di controllo sono normalmenteLAN

4

Classificazione delle reti per il controllo

Reti per l’automazione industriale: coprono una estensione che va dalla singola cella produttiva o unità, fino alla dimensione della linea di produzione o dello stabilimentoReti per sistemi di controllo embedded

Settori automobilistici e aereonautici casi tipiciSono reti di tipo locale

Eccezione data dalle applicazioni di controllo remoto, tramite Internet; sono ancora terreno di ricerca e non saranno trattate

Nell’ambito dell’automazione industriale, a basso livello sono connessi alla rete anche attuatori e sensori intelligentiI nodi di elaborazione a basso livello sono usualmente Controllori Logici Programmabili PLC

Classificazione delle reti per il controllo

WS WS PC

PCPLC

PLCPLC

Sensore Attuatore Controllore embedded

Livello di campo (di dispositivo)

Livello di controllo

Livello di supervisione

Rea

ltim

eN

on

Rea

ltim

e

Fieldbus

Fieldbus (bus di campo): reti sviluppate per applicazioni di controllo che coprono il livello di campo e/o quello di controllo

Non indica la topologia di connessione a bus, anche se ènormalmente quella, ma tutto il sistema di gestione e configurazione della rete e dell’interfacciamento con i dispositiviSviluppati inizialmente per coprire il livello di campo, comprendono ora anche il livello di controllo, fattore competitivo importante

Integrazione tra i due livelliVari ambiti

Automazione industriale: è l’applicazione principaleBuilding automation (domotica)Telecontrollo

Sistemi embedded:soluzioni specifiche stessi principi di fondo Diverse esigenze per tipologia dei costi di prodotto e di sviluppo

5

Fieldbus

StandardizzazioneInteroperabilità

Dispositivi e soluzioni sviluppati da diversi fornitori possono convivere e cooperare nello stesso sistemaLe informazioni scambiate sul bus sono interpretabili correttamente da tutti i dispositivi e a tutti i livelliOgni singolo dispositivo deve essere progettato per essere integrato all’interno di un sistema

IntercambiabilitàDispositivi di fornitori diversi con stesse funzioni e stesso protocollo devono poter essere scambiati senza bisogno di riconfigurare la rete di comunicazione

StandardEsiste un trend e una moltitudine di enti normativi che definiscono standard per i bus di campoQuasi tutte, e comunque quelle di interesse nell’ambito europeo per l’automazione industriale, sono confluite nella normativa IEC 61158, che a sua volta richiama anche altre normative

La normativa IEC 61158

Molte soluzioni diverse sono state sviluppate durante il processo di standardizzazione

Esse hanno influito pesantemente sulla normativaGli standard hanno recepito praticamente tutte le tipologie sviluppate, con il risultato che ad oggi applicazioni “standard”risultano scollegate tra di loro e non compatibili l’una con l’altra

Pur se non espressamente citati, i bus che rientrano nella IEC 61158 comprendono

ControlNetProfibusP-NETFieldbus FoundationWorldFIPSwiftNetInterbus

Non li vedremo nel dettaglio, ma considereremo i pricipi su cui si basano

Architettura del SW di rete

Suddivisione del SW di gestione della rete in livelli:Ogni livello di un dato nodo comunica con il livello corrispondente negli altri nodi tramite un protocollo:Tra due livelli adiacenti nello stesso nodo è definita una interfaccia:

Stabilisce i servizi che il livello inferiore (n-1) fornisce al superiore (n) per l’implementazione del protocollo di livello (n)

L’insieme di livelli e protocolli costituisce l’architettura SW della rete

6

Pila di protocolli

Mezzo fisico

Livello 1

Livello 2

Liv. n-1

Liv. n

Livello 1

Livello 2

Liv. n-1

Liv. n

Protocollo livello 1

Protocollo livello 2

Protocollo livello n-1

Protocollo livello n

Interfaccia 1/2

Interfaccia n-1/n

Interfaccia 1/2

Interfaccia n-1/n

Nodo 1 Nodo 2

Overhead dovuto ai livelli

Mn

MnHn-1

M1nHn-1Hn-2 M2nHn-2

M1nHn-1Hn-2 M2nHn-2H C H C

Messaggio livello n

Inserimento informazioni di controllo per livello

n-1 in ricezione

Messaggio livello n-1

Pacchetto

Frame

Dimensione fisica dei pacchetti limitata

Instradamento

,1

dim ( )dim ( ) dim

b nb n n

b n b ii

MM H

η=

=+ ∑

Efficienza della codifica in bit per la trasmissione del messaggio

Tipologie di servizi

Servizi orientati alla connessioneLa connessione rappresenta un canale virtuale dedicatoAttivazione, utilizzo, rilascioGarantisce che la sequenza dei dati ricevuti coincide con quella dei dati trasmessi

Servizi non orientati alla connessioneOgni messaggio contiene l’indirizzo di destinazione, e viene trattato indipendentemente da tutti gli altri messaggi

Servizi affidabiliGarantiscono che il messaggio (non il singolo pacchetto) arrivi a destinazioneRealizzato tramite acknowledge

Ogni livello fornisce una tipologia di servizi che non dipende dalla tipologia dei sottostanti

E’ possibile realizzare a livello n un servizio affidabile anche se il livello n-1 ne fornisce uno non affidabile

7

Modello ISO-OSI

Mezzo fisico

Fisico

Host 1 Host 2

Data-link

Rete

Trasporto

Sessione

Present.

Applicaz.

Fisico

Data-link

Rete

Fisico

Data-link

Rete

Trasporto

Sessione

Present.

Applicaz.

bit

frame

pacchettoRouter

Modello ISO-OSI: livelli di rete

Livello fisicoStandardizza la trasmissione dei bit sula canale fisico: livelli di tensione, tempistiche, half o full duplex, ecc.

Data-linkFormato dei frame che vengono spediti sulla lineaRiconoscimento di errori di trasmissione. Si Inseriscono bit di controllo all’inizio ed alla fine del pacchettoControllo di flusso: evita di inviare dati ad un ricevitore non pronto a riceverliNelle reti broadcast, è compito di questo livello controllare l’accesso dei nodi al canale condiviso: sottolivello Medium Access Control(MAC)

ReteGestisce la sottorete di comunicazione: cammino dei pacchetti, gestione della congestione di rete, interfaccia tra diverse sottoreti, che possono usare stessa o diverse tecnologie

Modello ISO-OSI: livelli di host

Livello di trasportoLivello punto a puntoPrimo livello che definisce la comunicazione tra host iniziale e finale, i livelli di rete sono relativi a macchine collegateDefinizione delle connessione di rete per stabilire il canale tra hostSuddivisione dei dati in pacchetti, garantisce che tutti i frammenti giungano correttamente a destinazioneIndipendenza dalla tecnologia HW utilizzata

Livello di sessione e di presentazioneGestiscono problematiche relative a scambio dei dati quali sincronizzazione, conversione di formati di rappresentazione, ecc. In realtà sono quasi vuoti, pur se presenti nel modello

Livello di applicazioneRacchiude le specifiche per applicazioni di servizio utili: terminale virtuale, scambio di file, ecc.

8

Modelli per bus di campo

Tipicamente, la struttura con 7 livelli del modello OSI risulta troppo onerosa per applicazioni con bus di campo

Overhead eccessivo, considerando anche che le dimensioni dei singoli messaggi è tipicamente piccolaMolti servizi dei livelli intermedi non necessariGrande attenzione ai metodi di accesso al mezzo trasmissivo(MAC)

Impattano sulle caratteristiche temporali dei messaggi scambiati

Modelli per bus di campo

Fisico

MAC

Rete

Applicaz.

LLC

Fisico

Data-link

Rete

Trasporto

Sessione

Present.

Applicaz. I servizi del livello applicazione sono specifici per le applicazioni a cui il bus di campo è dedicato

Il livello di rete non è sempre presente, risulta necessario quando si hanno topologie HW a più livelli

Il livello Data-link è suddiviso in due: Logical Link Control e Medium Access Control

I mezzi trasmissivi

TipologieCavi elettrici

Doppino intrecciato, schermato o non schermatoCavo coassiale

Fibra otticaSenza filo (ancora non utilizzati in applicazioni di controllo)

CaratteristicheVelocità di propagazione del segnaleMassima velocità di trasmissioneLunghezza dei singoli segmentiMassimo numero di nodi per segmentoRobustezza, immunità a disturbi, costi

9

Il doppino intrecciato

Cavo coassiale

Fibra ottica

10

Il livello fisico

Si occupa essenzialmente della trasmissione dei singoli bit sul mezzo trasmissivo

Codifica del bitSincronizzazioneSpecifiche elettricheSpecifiche meccaniche

Forte dipendenza dal mezzo trasmissivo utilizzatoSpecifiche elettriche

Modalità di pilotaggio del canale e di lettura dello stato dello stessoRipetitori di segnale, connessioni al mezzo trasmissivoStabiliscono insieme al layout del mezzo trasmissivo il ritardo di propagazione del segnale τr

Il livello fisico: codifica dei bit

BinariaConcettualmente sempliceDue stati del canale possibile, ognuno associato con uno stato logicoLo stato di riposo del canale coincide con una informazione logica

Poco robusto, praticamente non utilizzato

Non Return to Zero (NRZ)Non c’è cambiamento di stato del canale all’interno della codifica del singolo bitDue stati attivi (diversi da quello di riposo) per la codifica dei bit

Es. RS 422

Il livello fisico: codifica dei bit

ManchesterOgni periodo di bit viene diviso in due parti uguali e lo stato della linea varia tra il primo ed il secondo sottointervalloUn 1 logico è rappresentato con stato alto nel primo sottointervallo e basso nel secondo, lo 0 ha la codifica oppostaFacile sincronizzazione, non ambiguitàRichiede una banda doppia del canale trasmissivo

Manchester differenziale1 logico => assenza di transizione per il primo sottointervallo0 logico => presenza di transizione Maggiore immunità ai disturbi, ma circuiti più complessi

Binaria

ManchesterManchesterdifferenziale

0 1 1 1 10 0 0 0

11

Il livello fisico: codifica dei bit

Single endedRS 232

DifferenzialeRS 422

Differenziale in topologia busRS 485 con three stateWired and con configurazione dominante

Il livello MAC

Definisce i metodi di arbitraggio per l’accesso al mezzo fisicoIn stretta correlazione con il livello fisico ed il mezzo trasmissivosottostanteAllocazione statica

La banda del canale viene suddivisa tra gli utenti e preassegnataSpreco di banda nel caso di traffico irregolareDivisione di frequenza (FDM)

Assegna ad ogni utente una banda di frequenzaDivisione di tempo (TDM)

Assegna ad ogni utente uno slot temporale in cui è il solo che può accedere al canale di trsmissionePresenta una alta ripetibilità intrinseca nella tempistica dei messaggi

Il livello MAC

Allocazione dinamicaCollisione con rilevamento della portante (CSMA)

Tutti i nodi possono iniziare a trasmettere quando la linea è libera: il trasmettitore è anche in ascolto per verificare se il segnale trasmesso sulla linea coincide con quello che si vuole trasmettereRilevamento della collisione (CD)Risoluzione della collisione (CR)

Assenza di collisioneEsiste un meccanismo per assicurare che in ogni momento un solo nodo possa accedere al canale: normalmente ottenuto con il meccanismo del tokenToken bus: topologia della rete a bus lineareToken ring: topologia della rete ad anello

12

Carrier Sense Multiple Access

Quando una stazione deve inviare dati, ascolta il canaleSe il canale è libero inizia a trasmettereSe il canale è occupato, la trasmissione viene rimandata e ritentata successivamente

Tempi di attesa fissi o variabili (casuali)Se due o più stazioni iniziano a trasmettere “contemporaneamente”avviene una collisione

Nei protocolli a rilevamento della collisione (CD), i messaggi vengono corrotti: in questo caso tutti smettono di trasmettere e ritentano successivamenteNei protocolli a risoluzione della collisione (CR), uno tra i messaggi contemporaneamente trasmessi determina lo stato del canale: le stazioni che rilevano uno stato diverso da quello voluto smettono di trasmettere; la stazione che vince l’arbitraggio ed il cui messaggio non viene corrotto prosegue nella trasmissione fino al completamento

Il ritardo di propagazione del messaggio sulla linea definisce il concetto di contemporaneità, e determina la banda ottenibile sul canale

CSMA/CD

Stati della lineaTrasmissione: una stazione possiede il canale e trasmette: le altre vedono il canale occupatoContesa: più stazioni cercano di trasmettere, si verifica la collisione, nessuna riesce a portare a termine la propria trasmissione

Affinchè sia possibile rilevare collisione, la linea deve presentare unostato non validoMeccanismi di pilotaggio del mezzo definiti dal livello fisico

Attesa: nessuna stazione richiede accesso al mezzo

Frame Frame Frame

Trasmissione Contesa Trasmissione Attesa

t

Interframe

CSMA/CD

Il frame deve avere una durata minima maggiore del caso peggiore del ritardo di rilevazione della collisione

In presenza di collisione, ogni stazione trasmettente se ne deveaccorgere prima di arrivare alla fine della trasmissione del frame

A B

0t = A inizia a trasmettere t τ ε= − B inizia a trasmettere

A B

t τ ε= + B rileva collisione

A B

2t τ ε= + A rileva collisione

A B

τ= tempo di propagazione del segnale sulla lineaTr = tempo di reazione dei driver di linea

2frame rT Tτ≥ +

13

CSMA/CD

Affinchè le stazioni rilevino correttamente la contesa

Tempo di bit: selezionabile normalmente tra più opzioni, è definito nel livello 1Dimensione minima del frame: è funzione del ritardo di linea, ma deve essere fissato indipendentementeIl vincolo sul massimo ritardo si traduce, su un dato mezzo trasmissivo, in un vincolo sulla distanza massima tra due stazioni

Caso tipico:

Il vincolo sul numero minimo di byte per frame può portare ad una scarsa efficienza nel caso i dati da inviare siano di piccole dimensioni

( )* 1 2 *frame bit bit bit bit rT N T N T Tτ= < −

( )10 Mbit/s min 64 bytebit bitf N= =

max 2500L m=

CSMA/CD: struttura del frame

PreamboloStart of Frame

Indirizzo destinazioneIndirizzo sorgente

Lunghezza campo datiDatiPAD

Frame Check SequenceExtension

7 byte1 byte2 o 6 byte2 o 6 byte2 byte0 – 1500 byte0 – 46 byte4 byteBit non validi

46 – 1500 byte

CSMA/CD: struttura del frame

Preambolo: utilizzato per permettere la sincronizzazione dei dispositivi di ricezione al livello fisico

7 byte uguali 10101010In codifica manchester corrispondono ad un’onda periodica

Start of Frame: indica l’inizio del frame1 byte 10101011

Indirizzo destinazione: l’indirizzo del o dei nodi destinazioneBit 47 (primo) per gestione multicast

0 se ndirizzo seguente fa riferimento a nodo singolo1 se indirizzo seguente fa riferimento ad un gruppo (multicast) o broadcast (tutti 1 nel campo indirizzo)

Bit 46 per indirizzi locali o globali0 per indirizzi globali: assegnati dalla IEEE, garantiscono che non esistano nodi con stesso indirizzo sulla rete mondiale1 per indirizzi locali, definiti dall’amministratore di rete (il broadcast ènecessariamente locale)

14

CSMA/CD: struttura del frame

Indirizzo sorgente: indirizzo del nodo sorgenteI campi di indirizzamento non sono definiti dal MAC, ma devono essere forniti dal livello superiore rispettando le regole citateLunghezza campo dati: definisce di quanti byte dati è composto il successivo campo

È un valore compreso tra 0 e 1500Può assumere valori superiori a 1536, nel qual caso la sua interpretazione è diversa e verrà discussa in seguito

Dati: campo a dimensione variabilePAD: numero di byte dati fittizzi inseriti solo per assicurare che la lunghezza totale del frame sia compatibile con quella minima richiesta, tipicamente 64 byte

Il numero dei byte da inserire è calcolato direttamente nel livello MACLa dimensione minima del frame è un parametro stabilito nel MAC, serve per la corretta rilevazione della collisione come visto

CSMA/CD: struttura del frame

Frame Sequence Check: campo di checksum basato su un CRC a 32 bit

Calcolato sui campi di indirizzo, lunghezza, dati e padInserito a livello MAC

Extension: sono bit che non rappresentano dati validi, ma sono riconosciuti dal dispositivo di rilevamento della portante

Permettono di tenere il canale occupato per gestire le collisioni in maniera analoga ai PADSono basati su un parametro addizionale che rappresenta lo slot minimo di trasmissione espresso in bit

Normalmente concidente con la la dimensione minima del framePuò essere maggiore nelle reti ad alta velocità (> 100 Mbit/s) per mantenere la dimensione minima del frame a valori analoghi a quelli delle reti a velocità più bassaNecessario in topologie in cui segmenti di rete sono ad alta velocitàinsieme a segmenti a bassa velocità

CSMA/CD: struttura della trasmissione

Il livello fisico monitora continuamente il mezzo trasmissivo per rilevare la presenza della portanteQuando il livello fisico segnala che il canale è libero. Si attende un intervallo di tempo (interframe time) e poi si inizia la trasmissioneDurante la trasmissione, si può presentare una collisione

In questo caso, il nodo non interrompe la trasmissione, ma continua per un certo tempo (di jam) per assicurare che tutte le stazioni rilevino la collisione

Il meccanismo di gestione della collisione si basa sul tempo di slot che stabilisce

Il limite superiore per il tempo di acquisizione del canale da parte di un nodo (fase di contesa)Il limite superiore alla durata di un segmento di frame generato da una collisioneIl quanto temporale su cui si basa il meccanismo di retrasmissione

15

CSMA/CD: calcolo del tempo di backoff

Nel caso di collisione, il nodo attende un numero di slot prima di ritentare la trasmissione (tempo di backoff)Tale tempo non può essere costante

Due stazioni che cercano di accedere insieme al mezzo colliderebbero per sempre

Normalmente calcolato con l’algoritmo di regressione binaria esponenziale

n = numero di volte che un frame è soggetto a collisionek = min(n,10)0 < r < 2k-1 scelto con distribuzione di probabilità uniformeritrasmissione ritentata dopo r slot temporalise n > 16 trasmissione abortita: viene riportato un errore al livello superiore

La casualità insita nel meccanismo di backoff non permette di gestire priorità tra i frame

CSMA/CD

Caratteristiche essenzialiNon garantisce tempistiche certe sulla trasmissione/ricezione del frame anche in assenza di errori

Analisi statistiche difficili e poco attendibili per le assunzioni non realistiche

Le tempistiche di comunicazione sono influenzate dal traffico presente sulla rete, anche scorrelatoLa validazione delle prestazioni temporali è molto critica

Non può dare certezza assolutaUna modifica alla configurazione di rete (aggiunta di un nodo, di informazioni scambiate, ecc.) comporta rivalidazione

Ad alto traffico le prestazioni peggiorano drasticamente per collisioni frequentiVelocità di trasmissione elevate

A basso traffico ottimo throughput relativo ai frameCon frame dati lunghi si ha ottima efficienza di canaleCon frame dati corti si ha elevato overhead

CSMA/CR

Tra tutte le stazioni che trasmettono contemporaneamente, una è in grado di vincere sulle altre e continua la trasmissione senza perdita di informazione

Le altre sospendono la trasmissione e ritentano successivamenteTale caratteristica deve essere supportata dal livello fisico

Quando avviene collisione, l’informazione codificata sul canale non deve essere distruttaConnessione tipica al mezzo trasmissivo wired andL’arbitraggio e la risoluzione avviene tipicamente a livello del bit

I due stati logici della linea corrispondono ad una implementazione dominante ed una recessivaNel caso due stazioni stiano cercando di trasmettere contemporaneamente, vince quella che trasmette la codifica dominanteLe stazioni che vedono sul mezzo lo stato dominante quando vorrebbero trasmettere quello recessivo, capiscono che esiste almeno un’altra stazione in trasmissione ed interrompono la loroIl meccanismo deve garantire che alla fine della fase di contesa, una sola stazione sia rimasta attiva

16

CSMA/CR

Controller Area Network (CAN)Canale differenziale

Schema NRZWired and

È sufficiente che un nodo trasmetta un bit dominante per avere lo stato corrispondente sulla lineaIl numero dei nodi che possono essere connessi dipende dalle capacità di pilotaggio elettrico del driverComunque limitati

L’arbitraggio avviene a livello del bit

Tempo minimo di bit limitatoLimiti sulla velocità di trasmissione più strigentirispetto a CSMA/CD

recessivo dominante

CAN HCAN L

t

V

CSMA/CR: struttura del frame

Unità elementare bit e non byteStart of frame: bit dominante che indica inizio trasmissione. I ricevitori si sincronizzano quando viene rilevata la transizione di livelloRTR: bit di richiesta remota, vale 0 o 1 a seconda del typo di messaggioDelimitatori, End of Frame e intermission bit sono valori fissi (1) che devono essere presenti: il numero di intermission può essere variabile

11 bit 6 bit 0 – 64 bit 15 bit 7 bit

0 dominante 0/1 1 recessivo

interframe

Start offrame

IdentificationControllo

DLC Campo dati CRC

Delimitatore CRC Delimitatore

ACK

End offrame

ACK

Intermissionbit

TrasmettitoreRicevitore

RTR

CSMA/CR: struttura del frame

Campo di identificazione / prioritàL’arbitraggio è fatto durante la trasmissione di questo campo, in base al valore che esso assumeÈ generalmente un identificativo del tipo di messaggio

Non si hanno indirizzi espliciti dei nodiPuò essere usato come un campo per stabilire solamente la priorità del messaggio contenuto nei dati

Campo di controllo, Data Lenght Code2 bit sono riservati e fissati dominanti4 bit codificano il numero di byte che sarranno presenti nel campo dati (DLC)Da 0 a 8 byte sono ammessi, valori superiori ad 8 sono interpretati comunque come 8Nel caso di remote transimt request, il valore del DLC deve essere uguale a quello che avrà il corrispondente messaggio di risposta

Campo datiContiene i dati, con una lunghezza specificata dal DLCNel caso di remote transmit request, il campo è vuoto

17

CSMA/CR: struttura del frame

Campo CRCContiene il valore del CRC a 16 bit

Campo ACK Serve per verificare che almeno un nodo abbia correttamente ricevuto il messaggioÈ pilotato dal trasmettitore a 1 (codifica recessiva)Ogni ricevitore che abbia ricevuto il messaggio pilota il bit a 0 (dominante)Il trasmettitore può verificare che qualcuno abbia ricevuto il messaggio leggendo lo stato della linea

End of frame e intermission bitBit fissi a uno, servono a portare la linea allo stato recessivo, in maniera tale che il successivo Start of Frame venga riconosciuto

CSMA/CR: fase di contesa

Come in CSMA/CD, ogni nodo può decidere di iniziare a trasmettere in qualunque istante se il canale è libero

Durante il bus idle, lo stato della linea è a 1Ogni nodo deve riconoscere che il canale diventa occupato se lo stato va a zero (start of frame di un messaggio)Più nodi possono trasmettere lo start of frame contemporaneamenteDato che la linea ha comunque uno stao valido (wired and), nel caso piùnodi trasmettano contemporaneamente lo SoF, ognuno non si accorge della presenza degli altri in trasmissione e comincia a trasmettere l’identificativo

La fase di contesa avviene durante la trasmissione dell’identificativoSe il nodo vede sulla linea lo stato che corrisponde alla prorpia trasmissione, prosegueAppena un nodo verifica che lo stato della linea è dominante mentre secondo il proprio identificativo dovrebbe essere recessivo, termina la trasmissione immediatamente (nessun altro bit trasmesso)Dato che non possono esistere due identificativi uguali, alla fine della trasmissione del campo identificativo un solo nodo rimane attivo e vince la contesa; esso prosegue con la trasmissione dei restanti campiTutti gli altri nodi, compresi quelli che avevano tentato una trasmissione, riceveranno il frame corretto

CSMA/CR: fase di contesa

0 0 0 1 00000001 xxxx 11EOF

10110110100 0

Trasmiss. nodo 1:

Stato della linea:

0 0 0 1 00000001 xxxx 01EOF

10110110100 0

Trasmiss. nodo 2:

0 10110111

Il nodo 2 perde l’arbitraggioe interrompe la trasmissione

Invia comunque il campo ACK

01

Campo di arbitraggio

18

CSMA/CR: limitazioni

Dato che l’arbitraggio (nonchè la sincronizzazione) deve avvenire durante la trasmissione del bit, la limitazione introdotta dal tempo di ritardo dovuto alla propagazione diviene

Tempi di bit relativamente elevatiRitardo di propagazione, e lunghezza di linea, ridottaConfigurazioni ammesse

La configurazione wired and pone vincoli al massimo numero di nodi collegabili

Carico ai driver di linea nel caso un nodo trasmetta bit dominante e tutti gli altri bit recessiviDipende dai driver utilizzati, comunque poche decine di nodi massimo

1 2r bitT Tτ + <

< 500 m

125 kbit/s

< 650 m

100 kbit/s

< 1 km< 250 m< 100 m< 25 mLunghezza

50 kbit/s250 kbit/s500 kbit/s1 Mbit/sVelocità

CSMA/CR: caratteristiche

Tarato per dati di dimensione ridottaBasso overhead di frameAnche con basse velocità di trasmissione si possono ottenere elevate efficienze di canale

Non esiste un identificativo di nodo, ma solo di messaggioIntrinsecamente broadcastSupporta egregiamente la comunicazione produttore/consumatore

Non c’è bisogno di registrare esplicitamente i consumatoriOgni nodo decide autonomamente se usare o meno il frame

Assegnando opportunamente gli identificativi si gestisce la priorità tra messaggi

Un messaggio a priorità inferiore può essere bloccato da uno a prioritàsuperiore solamente se il secondo ha già vinto la fase di contesaComportamento temporale quasi deterministico

Si può calcolare il tempo massimo di latenza per ogni messaggioPuò variare se si aggiungono successivamente messaggi a priorità inferiore

Token ring

Struttura dell’anello ed interfacciaIn modalità ascoltoIn modalità trasmissione

Anellounidirezionale

Stazioni

Interfaccie

Ritardo di 1 bit

Stazione

Disconnessa

Ascolto

Trasmissione

19

Token ring

Rete ad anello con connessiomi punto punto tra le varie interfaccieL’anello tresmette singoli bit per ogni connessione

In modalità disconnessa l’interfaccia è trasparenteIn modalità ascolto l’interfaccia riceve e ritrasmette il bit inserendo un ritardoIn modalità trasmissione il bit in ingresso è inviato alla stazione e quello in uscita è definito dalla stazionePiù bit sono contemporaneamente presenti sull’anello:

Circolanti fisicamente con i tempi fi ritardo del mezzo fisicoNei buffer inseriti a livello di interfaccia

Deve essere garantito un numero minimo per il meccanismo di gestione

Quando ci sono molti nodi nell’anello non è un limiteCon pochi nodi, può essere necessario aggiugere ritardi aggiuntivi

Token ring

Meccanismo di accesso al mezzo mediante tokenSequenza speciale di bit che circola sulla rete quando tutte le interfaccie sono in modalità ascoltoQuando una stazione vuole spedire un frame, rimuove il token dall’anello e inizia a trasmettere

I bit del frame vengono rimossi dall’anello quando essi ritornano alla stazione trasmittenteTutte le stazioni ascoltano quindi il frame: rete broadcast anche se connessione punto punto

Quando ha finito di trasmettere il frame, ritrasmette il token che ricomincia a circolare fino a che un’altra stazione non lo rimuove

Controllo di accesso distribuito e dinamico ma senza collisioneUna sola stazione per volta è abilitata a trasmetterePer riuscire di accedere al mezzo, ogni stazione deve aspettare per riuscire ad impadronirsi del tokenPer garantire che ogni stazione possa accedere al mezzo in un tempo limitato, le trasmissioni da parte dei singoli nodi devono essere limitate entro un tempo massimo

Token ring: struttura del frame

Diversi tipi di frameTokenFrame datiFrame di controllo

Starting Delimiter (SD) e Ending Delimiter (ED)contengono alcuni bit codificati diversamente dai bit dati, in maniera da renderli univocamente riconoscibili; si sfutta la codifica manchester differenziale per i bit dati e codifica con assenza di transizione all’interno del bit per gli altri

Access control: Bit di priorità (3) e bit di prenotazione (3): sono utilizzati per gestire messaggi con diversa rpioritàBit del token (1): definisce se il frame corrente è un token o noBit monitor (1): viene utilizzato per diagnostica e manutenzione

StartingDelimiter

AccessControl

EndingDelimiter

1 byte

Frame di controllo

1 byte 1 byte

20

Token ring: struttura del frame

SD, ED e AC sono identici in significato ai campi del tokenFrame Control indica se si è in presenza di un frame di dati o di uno dei possibili frame di controlloCampo dati: la lunghezza è variabile e codificata nei primi bytePer i frame dati, i campi di indirizzamento sono analoghi a quelli visti per CSMA/CDCRC è a 32 bit analogo a CSMA/CDFrame status: permette il riscontro (ACK) da parte di almeno unastazione ricevente; non essendo coperti dalla checksum le informazioni sono rappresentate in maniera ridondante

SD IndirizzoDestinazione

IndirizzoSorgente

1

Frame dati ACFC CRC EDFSDati

1 1 2 - 6 2 - 6 4 1 1

Frame ControlAccess ControlStarting Delimiter

Ending DelimiterFrame Status

Token ring: acquisizione del mezzo

Quando una stazione vede transitare il token lo può trattenereEsiste un meccanismo di priorità: il token ha una priorità codificata, la stazione in attesa di trasmettere acquisisce il token solo se è di una priorità inferiore o uguale a quella del messaggio da inviareDato che una stazione in ascolto ritrasmette i bit di passaggio con il ritardo di un bit, nel caso di token può modificare il bit e continuare con la trasmissioneQuello che era lo SD del token diviene lo SD del frame trasmessodal nodo

Nodo

0 011 0 M11

Bit di token Bit di piorità

001

010 Piorità del frame in attesa

Piorità del frame in circolo

Campo AC del Token Frame in ingresso

Campo AC del Frame dati o controllo in uscita

M011

Bit di prenotazione di priorità

0 1 0 0

011Priorità prenotata

Token ring: prenotazione della priorità

Quando una stazione vede transitare un frame, esamina la priorità codificata nei bit di prenotazione del byte AC

Se la prenotazione di priorità è superiore o uguale alla priorità del frame in attesa, lascia la prenotazione inalterataSe la prenotazione di priorità è inferiore alla priorità del frame in attesa, alza la prenotazione di priorità al valore del frame in attesaLa stazione proprietaria del token esamina la prenotazione durante la fase di rimozione dei bit dall’anelloSe esiste una prenotazione superiore a quella dei frame che devetrasmettere rilascia il mezzo

Nodo

0 01 0 M10

Bit di token Piorità corrente

010 Piorità del frame in attesa

Campo AC delFrame in ingresso

Campo AC del frame in uscita

M001

Bit di prenotazione di priorità

1 0 0

001Priorità prenotata

21

Token ring: rilascio del mezzo

Un nodo rilascia il mezzo quando non ha più frame (di priorità uguale o maggiore di quella prenotata) da trasmetterequando è scaduto il tempo di possesso del token

Una volta trasmesso e ricevuto in ritorno l’ultimo bit del frame, la stazione rigenera il tokenAl token rigenerato viene assegnato la priorità più alta tra

Quella di un eventuale frame ancora da trasmettere dal nodoQuella che era stata prenotata nel campo AC da altre stazioni

Nodo

0 M11

Bit di token Bit di piorità

001 Piorità del frame in attesa

Campo AC del nuovoToken frame

Bit di prenotazione di priorità

1 1 1 0

011Priorità prenotata

011 Massimo tra i due

Token ring: rilascio del mezzo

Per evitare una priorità sempre crescente, il nodo che alza il livello di priorità lo abbassa successivamente una volta servito il messaggio

Token ring: gestione della rete

Nelle reti con token un nodo non può essere connesso e partecipare direttamente alla trasmissione, come invece accade nei sistemi acollisione

Necessaria una politica di gestione della reteLa gestione può essere centralizzata (una macchina fa da monitor) o distribuitaNei sistemi token ring solitamente si adotta una gestione centralizzataNon vedremo nel dettaglio tutta la gestione, ma alcuni degli aspetti piùimportanti

Stazione monitorSorveglia il corretto funzionamento dell’anelloOgni nodo può divenire monitor, e deve averne quindi le capacitàSe il monitor si guasta, si apre una fase di contesa tra le altre stazioni per eleggere il nuovo monitorQuando la rete viene attivata, oppure quando si rileva che per un certo periodo non si ricevono frame di controllo di monitor presente, una stazione genera un campo di controllo di richiesta del token

Se il frame circola sull’anello e ritorna indietro prima che altre stazioni generino lo stesso frame, il nodo diviene la stazione monitor

22

Token ring: funzioni del monitor

Perdita del tokenRilevato dal monitor attraverso un time-out più grande del maggior tempo di mantenimento del token da parte di una stazioneSi ripulisce l’anello rimuovendo tutti i bit circolanti e si rigenera il token

Frame corrottiRilevato dal monitor per il formato non corretto del frameDi nuovo si apre l’anello e si rigenera il token

Frame orfaniFame di formato corretto che non vengono rimossi dall’anello dal nodo che li ha generatiPer rilevarli il monitor utilizza il bit Monitor del campo ACTutte le volte che un frame dati o controllo passa attraverso la stazione monitor, il bit viene attivatoSe in un passaggio il monitor rileva bit attivo, significa che era già transitato e quindi non è stato rimosso come doveva dalla stazione che lo ha inviatoIl monitor rimuove il frame, pulisce l’anello e rigenera il token

Token ring: funzioni del monitor

Gestione del ritardo di anelloIn una rete token ring, il token deve poter essere tutto contenuto nella reteIl ritardo di circolazione del bit deve essere maggiore, espresso in bit, della lunghezza del token

N.B. Ciò non è vero per i frame di dati e controllo, dato che non circolano liberamente ma vengono ritirati dalla stessa stazione che li ha trasmessi

Il ritardo di circolazione è dato dai tempi di propagazione sul mezzo fisico e dai ritardi inseriti all’interno delle interfacce

Se il ritardo diviene troppo piccolo, ad esempio perchè ci sono pochi nodi sull’anello, il monitor provvede ad inserire bit di ritardo in numerosuficiente

Token bus

Abbina il meccanismo di accesso al mezzo tramite token, quindi senza collisione, con una topologia di rete a bus

Rispetto alla topologia ad anello, la rottura di un elemento noninterrompe le trasmissioni tra le stazioni ancora funzionantiLa topologia a bus si adatta meglio a alle disposizioni tipicamente lineari di molti ambienti di automazione industriale (es. Linee di produzione)Le stazioni sono logicamente organizzate in un anello, ogni singolo nodo ha un predecessore ed un successoreUna stazione può trasmettere solamente se è in possesso del token

Inizialmente il nodo con l’identificativo più alto è abilitato alla trsmissioneSuccessivamente, ogni nodo alla fine della sua trasmissione invia il token alla stazione successiva, che diviene quindi abilitata

È necessario un meccanismo di controllo spesso complesso per aggiungere o rimuovere nodi dall’anello logico

23

Token bus: struttura del frame

Anche in questo caso si distingue tra frame dati e frame di controlloIl passaggio del token avviene tramite un frame di controllo dedicato

Elementi del frame datiPreambolo: simile al preambolo di CRMA/CD, permette la sincronizzazione dei riceventiStarting e Ending Delimiter: come nel token ring, contengono codifiche non corrispondenti ai bit 0 e 1, che quindi non si ripresentano all’interno del frame; ciò permette di evitare l’indicazione specifica della lunghezza del frame

IndirizzoDestinazione

IndirizzoSorgente

1

Frame dati CRC EDDati

1 1 2 - 6 2 - 6 4 1

Frame ControlStarting delimiterPreambolo

Ending Delimiter

0 - 8182

Token bus: struttura del frame

Elementi del frame datiControl frame: stabilisce se si tratta di un frame dati o di controllo; nel caso di frame dati, contiene la priorità del messaggioIndirizzo Destinazione e Sorgente: del tutto analoghi agli indirizzi di CSMA/CD, comprese le modalità per indirizzamenti singoli, multicast e broadcastDati: può essere di lunghezza anche considerevole, fino a 5 volte lalunghezza di CSMA/CD; in questo caso si utilizzano dei timer a livello di singolo nodo per evitare che esso occupi la rete troppo a lungo, e quindi in assenza di traffico real si possono utilizzare anche frame lunghi che aumentano l’efficienza della trasmissioneCRC: campo di checksum del tutto analogo a CSMA/CD

Token bus: accesso al mezzo

L’accesso al mezzo avviene tramite tokenIl token circola periodicamente nell’anello logicoOgni volta che un nodo ottiene il token esso può trasmettere per un intervallo di tempo massimo, allo scadere del quale deve comunque passare il token al nodo successivoSe i frame sono corti è c’è disponibilità di tempo se ne possono trasmettere più di uno; se non ci sono ulteriori frame da spedire la stazione passa immediatamente il tokenSi possono gestire diversi livelli di priorità, tipicamente 4

Ogni nodo può essere pensato come 4 sottonodi distinti, uno per ogni livello di prioritàQuando i messaggi vengono passati dai livelli superiori, essi vengono inviati al sottonodo di priorità corrispondente, che mantiene code di gestione separataEsiste un timer globale per il nodo più timer dedicati per ogni sottonodo per controllare l’intervallo di tempo massimo per cui ogni nodo può trattenere il token

24

Token bus: gestione della priorità

All’arrivo del tokenEsso viene assegnato inizialmente al sottonodo di priorità piùelevataAllo scadere del timer relativo, o se non ci sono più frame da trasmettere, il token viene passato al sottonodo di priorità inferioreIn ogni caso allo scadere del timer complessivo, o se non ci sono più frame in attesa, il token viene passato al nodo successivo

Tramite i timer globali, è possibile garantire un caso peggiore sul tempo di rotazione del token, e quindi sull’accesso al mezzo da parte di tutti i nodiTramite una gestione adeguata dei timer dedicati è possibile riservare una frazione della banda globale del canale al traffico di priorità assegnata

I sottonodi di priorità più bassa si adeguano, trasmettendo nel tempo rimanenteNormalmente la priorità più elevata è riservata al traffico real-time

Token bus: gestione della rete

Tipicamente avviene con un meccanismo di monitoraggio distribuito a differenza di token ring

Più robusto, anche se più complessoIn presenza di malfunzionamenti, può comunque rendere non deterministico il funzionamento

È la stazione che possiede il token che svolge anche le funzioni di monitoraggio principale

Inserimento e disattivazione di nodi nell’anello logicoInserimento: periodicamente la stazione che possiede il token invia un messaggio di controllo per sollecitare eventuali nodi che devono essere inseriti tra il suo indirizzo e quello del suo successore a rispondere, lasiando libera una finestra temporale per la rispostaSe una stazione si propone, essa viene inserita nell’anelloSe due o più stazioni rispondono, si ha collisione; in questo caso il possessore del token inizia un algoritmo di arbitraggio

Token bus: gestione della rete

Inserimento (cont.)Viene inviato un frame di controllo di risoluzione del conflitto, in cui viene chiesto ai nodi che vogliono inseririsi di rispondere dopo un tempo causale (da 0 a 3 intervalli temporali)

Conteggio a ritroso tipo il backoff di CSMA/CD con due soli bitPer evitare che i meccanismi di inserimento interferiscano con il tempo totale di rotazione del token, ogni nodo mantiene traccia del tempo di rotazione complessivo; si utilizza un timer che viene inizializzato quando il nodo rilascia il tokenSe il tempo di rotazione totale risulta troppo alto, il nodo non effettua nessuna richiesta di inserimento nell’intervallo successivoTale meccanismo implica che non esiste un limite garantito al tempo che il nodo può attendere prima di essere inserito nell’anello

DisattivazioneQuando un nodo che vuole disattivarsi entra in possesso del token, comunica tramite un frame di controllo al nodo precedente nell’anello che dal quel momento dovrà considerare come successore il rporprio successore nell’anello.Rilascia quindi il token e smette semplicemente di trasmettere

25

TDMA con allocazione statica