CAN(cenni) - DEI, UniPD

Download Report

Transcript CAN(cenni) - DEI, UniPD

CAN
Controller Area Network ITS Meccatronico – Reti per l’automazione
F. Tramarin - 2014
Generalità
¤ Introdo0o a metà degli anni 80 dalla Bosch GmbH per risolvere i problemi di cablaggio a bordo auto ¤ Ora norma internazionale ISO 11898 ¤ Molto ada0o anche come rete di campo a livello disposiGvo ¤ Definisce il solo livello data-­‐link ITS Meccatronico – Reti per l’automazione
2
F. Tramarin - 2014
Caratteristiche di CAN
¤ Semplice ed economico ¤ Ampia disponibilità di componenG e strumenG di sviluppo ¤ Molto diffuso ¤ CenGnaia di milioni di nodi CAN a0ualmente installaG ITS Meccatronico – Reti per l’automazione
3
F. Tramarin - 2014
Profilo di comunicazione
Processi Applicativi
Livello Application
servizi ad alto livello, profilo dei dispositivi
CAN
Livello Data-Link
Logical Link Control
Medium Access Control
Livello physical
ITS Meccatronico – Reti per l’automazione
4
F. Tramarin - 2014
Livello fisico (I)
¤ Topologia a bus condiviso ¤ Usa un semplice doppino intrecciato ¤ Estensione fino a 6 Km o a 10 Kbps ¤ Velocità di trasmissione fino a 1 Mbit/s o massima estensione in questo caso 40 m ¤ Interfaccia simile ai circuiG a colle0ore aperto o livello sul bus dominante o recessivo ITS Meccatronico – Reti per l’automazione
5
F. Tramarin - 2014
Livello fisico (II)
¤ La codifica di linea prevede •  Una tecnica di trasmissione NRZ •  Una tecnica di bit stuffing per garanGre la sincronizzazione dei ricevitori o  introduzione di un bit di valore opposto dopo cinque bit consecuGvi dello stesso valore ITS Meccatronico – Reti per l’automazione
6
F. Tramarin - 2014
Medium Access Control
¤ Rete mulGmaster ad accesso casuale (CSMA) simile a Ethernet ¤ Le stazioni sulla rete NON hanno indirizzo fisico ¤ Sulla rete vengono scambiate variabili secondo il principio produ0ore/consumatore ¤ Le variabili sono individuate univocamente da un idenGficatore ITS Meccatronico – Reti per l’automazione
7
F. Tramarin - 2014
Risoluzione delle collisioni
¤ Basata sulla priorità degli ogge[ scambiaG ¤ La priorità è definita dall’idenGficatore ¤ Fase di arbitraggio non distru[va per risolvere le contese sul bus ¤ GaranGsce un comportamento determinisGco e prevedibile ITS Meccatronico – Reti per l’automazione
8
F. Tramarin - 2014
Frame CAN
¤ Data Frame ¤ Remote frame ¤ Error frame ¤ Overload frame ITS Meccatronico – Reti per l’automazione
9
F. Tramarin - 2014
Data Frame
S
O
F
Numero di bit 1 R
IDENTIFIER T CONTROL
R
11 1 6 DATA
0-­‐64 CRC
16 ACK
EOF
2 7 Il campo Iden.fier nella versione estesa di CAN è cosGtuito da 29 bit ITS Meccatronico – Reti per l’automazione
10
F. Tramarin - 2014
Fase di arbitraggio
BUS
A
B
C
A perde
ITS Meccatronico – Reti per l’automazione
11
B perde
C trasmette
F. Tramarin - 2014
Remote frame
¤ Sono simili ai data frame ma non contengono il campo daG ¤ Il bit RTR assume valore recessivo ¤ UGlizzaG per richiedere che il valore di un ogge0o specificato venga immesso in rete ¤ Il nodo remoto che si riconosce produ0ore della variabile la deve imme0ere in rete ITS Meccatronico – Reti per l’automazione
12
F. Tramarin - 2014
Error frame
¤ ParGcolare Gpo di messaggio uGlizzato dal sistema di controllo degli errori ¤ Un nodo che rileva un errore inizia immediatamente la trasmissione ¤ E’ cosGtuito da due campi •  error flag •  error delimiter ¤ Error delimiter è composto da una sequenza di 8 bit a livello recessivo e segue immediatamente l’error flag ITS Meccatronico – Reti per l’automazione
13
F. Tramarin - 2014
Error frame
6 Bit
0...6 Bit
8 Bit
3 Bit
Error Flag
Data Frame
Sovrapposizione di
Error Flags
Error Frame
ITS Meccatronico – Reti per l’automazione
14
Error
Delimiter
Interframe Space
F. Tramarin - 2014
Error Flag
¤ Può essere di due Gpi, a seconda dello stato in cui si trova il nodo CAN: a[vo o passivo Ø A[vo:   cosGtuito da 6 bit di livello dominante, quando è trasmesso provoca un errore di ricezione in tu[ i nodi Ø Passivo   cosGtuito da 6 bit di livello recessivo ¤ La trasmissione di un error frame da parte di un nodo forza un’analoga trasmissione da parte di tu[ gli altri nodi ITS Meccatronico – Reti per l’automazione
15
F. Tramarin - 2014
Error frame attivo e passivo
Iniziato da un nodo ERROR ACTIVE
6 Bit
0...6 Bit
8 Bit
3 Bit
Error Flag
Data Frame
Sovrapposizione di
Error Flags
Error Frame
Error
Delimiter
Interframe Space
Iniziato da un nodo ERROR PASSIVE
6 Bit
ITS Meccatronico – Reti per l’automazione
0...6 Bit
16
8 Bit
3 Bit
F. Tramarin - 2014
Gestione degli errori
¤ Quando viene rilevato un errore (locale o globale) viene trasmesso un Error Flag • l’errore viene propagato a tu[ gli altri nodi • globalizzazione dell’errore • in caso di errori locali i diversi Error Flag si sovrappongono ¤ L’Error Flag è seguito da un Error Delimiter: • la sequenza risultante sul bus è composta da 6 a 12 bit dominanG seguiG da 8 bit recessivi ITS Meccatronico – Reti per l’automazione
17
F. Tramarin - 2014
Gestione degli errori (II)
¤ Il messaggio viene scartato da ogni nodo • garanzia di consistenza ¤ Vengono incrementaG gli Error Counter di ogni nodo: • meccanismo di confinamento dei guasG ¤ La trasmissione del messaggio viene ripetuta automaGcamente ITS Meccatronico – Reti per l’automazione
18
F. Tramarin - 2014
Rilevamento degli errori
¤ Esistono 5 diversi meccanismi per il rilevamento degli errori, che operano simultaneamente: 1. Cyclic Redundancy Check 2. Frame Check 3. Acknowledge Error Check 4. Bit-­‐Monitoring 5. Bit-­‐Stuffing ITS Meccatronico – Reti per l’automazione
19
F. Tramarin - 2014
Cyclic Redundancy Check
1
12
6
0 - 64
15
Control Field
Arbitration Field
Start of Frame
Data Field
ITS Meccatronico – Reti per l’automazione
20
1 1 1
7
3
InterframeSpace
End of Frame
ACK Field
CRC Field
F. Tramarin - 2014
Cyclic Redundancy Check
¤ CAN uGlizza un CRC su 15 bit • ada0o per messaggi di piccole dimensioni • offre un’o[ma copertura dagli errori ¤ Il bit che segue il CRC (CRC delimiter) è trasmesso a livello recessivo ITS Meccatronico – Reti per l’automazione
21
F. Tramarin - 2014
Meccanismo di acknowledge
¤ CAN realizza un meccanismo elementare di acknowledge distribuito • il trasme[tore se0a il bit di ack nel frame inviato a livello recessivo • ogni nodo che riceve corre0amente il messaggio sovrascrive il bit di ack con un livello dominante • contemporaneamente alla trasmissione del bit di ack il trasme[tore rileva lo stato del bus o se rileva un livello recessivo, ciò vuol dire che nessun altro nodo ha le0o il messaggio o in questo caso viene generato un errore di acknowledge ITS Meccatronico – Reti per l’automazione
22
F. Tramarin - 2014
Errore di acknowledge
1
12
6
0 - 64
15
Control Field
Arbitration Field
Start of Frame
Data Field
ITS Meccatronico – Reti per l’automazione
23
1 1 1
7
3
InterframeSpace
End of Frame
ACK Delimiter
ACK Slot
CRC Field
F. Tramarin - 2014
Frame check
¤ Alcuni campi del frame hanno formato fisso (sono a valore recessivo) • occorre verificare che tali campi abbiano effe[vamente il valore previsto • in caso contrario viene generato un errore di formato ITS Meccatronico – Reti per l’automazione
24
F. Tramarin - 2014
Frame check
1
12
6
0 - 64
15
ITS Meccatronico – Reti per l’automazione
7
3
InterframeSpace
End of Frame
Control Field
Arbitration Field
Start of Frame
1 1 1
Data Field
25
ACK Delimiter
ACK Slot
CRC Field CRC Delimiter
F. Tramarin - 2014
Monitoraggio del segnale
¤ Ogni trasme[tore, mentre invia un messaggio sul bus legge contemporaneamente il livello dello stesso: • se il bit scri0o e il livello le0o differiscono viene generato un errore di bit monitoring • questo non si applica al campo di arbitraggio, dove tale condizione non implica un errore ma semplicemente la perdita della contesa • non si applica neppure al campo di acknowledge, che viene gesGto in modo diverso ITS Meccatronico – Reti per l’automazione
26
F. Tramarin - 2014
Bit stuffing
¤ Per garanGre che i ricevitori possano sincronizzare il proprio clock locale tramite DPLL, il segnale trasmesso deve contenere un numero adeguato di fronG: • il bit stuffing assicura che lo stream di bit sul bus contenga un numero di transizioni sufficiente per la sincronizzazione • l’assenza prolungata di fronG indica un errore o una condizione di bus idle ITS Meccatronico – Reti per l’automazione
27
F. Tramarin - 2014
Bit stuffing (II)
¤ Ogni qualvolta nel bit stream in uscita vengono individuaG 5 bit allo stesso livello • viene aggiunto un bit al valore opposto • stuff bit ¤ I ricevitori sono in grado di eliminare gli stuff bit per rio0enere la sequenza originale ¤ Più efficiente della codifica Manchester ITS Meccatronico – Reti per l’automazione
28
F. Tramarin - 2014
Overload frame
¤ È cosGtuito da un overload flag e da un overload delimiter uguali a quelli dell’error frame con flag a[vo ¤ È trasmesso da un nodo sovraccarico per rallentare le operazioni in rete ¤ Viene trasmesso nello spazio a disposizione tra la trasmissione di due frame successivi ITS Meccatronico – Reti per l’automazione
29
F. Tramarin - 2014
Overload frame
6 Bit
0...6 Bit
8 Bit
End of Frame o
Error Delimiter o Overload
Overload
Flag
Delimiter
Overload
Sovrapposizione di
Delimiter
Overload Flags
Overload Frame
ITS Meccatronico – Reti per l’automazione
30
3 Bit
Interframe
Space
F. Tramarin - 2014
Livello Applicazione
¤ Il livello data link non soddisfa ai requisiG fondamentali di una rete di comunicazione di campo ¤ Necessità di un livello applicazione ¤ CAN non definisce uno standard del livello applicazione ITS Meccatronico – Reti per l’automazione
31
F. Tramarin - 2014
CAN: Livello Applicazione
¤ Alcune associazioni hanno realizzato dei protocolli applicazione basaG su CAN ¤ Successivamente sono diventaG IEC 62026 Ø CANopen Ø CAN in AutomaGon, CiA, www.can-­‐cia.org Ø DeviceNet Ø Open DeviceNet Vendor AssociaGon, ODVA, www.odva.org ¤ Un ulteriore prodo0o interessante è CAN Kingdom ¤ Kvaser ITS Meccatronico – Reti per l’automazione
32
F. Tramarin - 2014