Reti di comunicazione per sistemi di controllo - LAR-DEIS Home … · 2004-06-01 · Livello di...
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
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