CAN Controller Area Network ITS Meccatronico Reti per l automazione
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
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
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
Topologia a bus condiviso Usa un semplice doppino intrecciato Estensione fino a 6 Km o a 10 Kbps Livello fisico (I) 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
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
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
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
Frame CAN Data Frame Remote frame Error frame Overload frame ITS Meccatronico Reti per l automazione 9
Data Frame S O F IDENTIFIER R T R CONTROL DATA CRC ACK EOF Numero di bit 1 11 1 6 0-64 16 2 7 Il campo Iden.fier nella versione estesa di CAN è cosgtuito da 29 bit ITS Meccatronico Reti per l automazione 10
Fase di arbitraggio BUS A B C A perde B perde C trasmette ITS Meccatronico Reti per l automazione 11
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
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
Error frame 6 Bit 0...6 Bit 8 Bit 3 Bit Data Frame Error Flag Sovrapposizione di Error Flags Error Frame Error Delimiter Interframe Space ITS Meccatronico Reti per l automazione 14
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
Error frame attivo e passivo Iniziato da un nodo ERROR ACTIVE 6 Bit 0...6 Bit 8 Bit 3 Bit Data Frame Error Flag Sovrapposizione di Error Flags Error Frame Error Delimiter Interframe Space Iniziato da un nodo ERROR PASSIVE 6 Bit 0...6 Bit 8 Bit 3 Bit ITS Meccatronico Reti per l automazione 16
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
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
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
Cyclic Redundancy Check 1 12 6 0-64 15 1 1 1 7 3 Control Field Arbitration Field Start of Frame Data Field CRC Field Interframe- Space End of Frame ACK Field ITS Meccatronico Reti per l automazione 20
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
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
Errore di acknowledge 1 12 6 0-64 15 1 1 1 7 3 Interframe- Space Control Field End of Frame Arbitration Field ACK Delimiter Start of Frame Data Field ACK Slot CRC Field ITS Meccatronico Reti per l automazione 23
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
Frame check 1 12 6 0-64 15 1 1 1 7 3 Control Field Interframe- Space End of Frame Arbitration Field ACK Delimiter Start of Frame Data Field ACK Slot CRC Field CRC Delimiter ITS Meccatronico Reti per l automazione 25
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
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
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
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
Overload frame 6 Bit 0...6 Bit 8 Bit 3 Bit End of Frame o Error Delimiter o Overload Overload Flag Delimiter Sovrapposizione di Overload Flags Overload Frame Overload Delimiter Interframe Space ITS Meccatronico Reti per l automazione 30
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
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