Protocollo CAN (Controlled-Area-Network)

07.09.2023 | Protocolli Robotici

Il Controller Area Network (CAN) è un protocollo di comunicazione seriale ampiamente utilizzato nell’ambito dell’automazione industriale, industria automobilistica e di altre applicazioni in cui è necessaria una comunicazione affidabile tra dispositivi distribuiti. Di seguito viene proposta una panoramica sulle caratteristiche del protocollo, mettendo in luce i vantaggi rispetto ad altri protocolli di comunicazione, che lo inquadrano come il più utilizzato dai costruttori dell’industria automobilistica.
 
Il Controller Area Network (CAN) è stato sviluppato negli anni ’80 dalla società tedesca Bosch. È noto per la sua robustezza, affidabilità e capacità di funzionare in ambienti rumorosi. Il protocollo CAN è spesso utilizzato in sistemi di controllo distribuiti in cui più dispositivi devono comunicare tra loro.
 
 Il CAN è basato su una topologia a bus SERIALE MULTI-MASTER, dove tutti i dispositivi condividono la stessa linea di comunicazione. L’architettura CAN prevede due tipi di nodi: il “nodo trasmittente” e il “nodo ricevente”. Il protocollo CAN utilizza una tecnica di accesso al bus chiamata “CSMA/CA” (Carrier Sense Multiple Access with Collision Avoidance), che impedisce le collisioni durante la trasmissione.
 
 I dati vengono inviati sotto forma di “frame” CAN, che sono pacchetti di dati standardizzati. Un frame CAN può essere di due tipi principali: “frame dati” (Data Frame) e “frame remoto” (Remote Frame). Il frame dati contiene dati effettivi da trasmettere, mentre il frame remoto viene utilizzato per richiedere dati da un nodo specifico.
 
Il protocollo CAN utilizza una tecnica di “bit stuffing” per garantire che ci siano transizioni regolari sul bus e per sincronizzare gli orologi dei nodi. La velocità di trasmissione (bit rate) è specificata in termini di quanti bit di dati vengono trasmessi al secondo (es. 125 kbps, 500 kbps, ecc.).

Ogni frame dati CAN include un identificatore unico, noto come “ID del messaggio“, che determina la priorità del messaggio. Questo sistema di priorità consente di gestire situazioni di conflitto e garantisce che i messaggi critici vengano trasmessi prima di quelli meno critici.
 
Il CAN 2.0A e CAN 2.0B sono le varianti originali del protocollo CAN, comunemente note come “standard CAN”. CAN 2.0A utilizza un identificatore di 11 bit, mentre CAN 2.0B utilizza un identificatore di 29 bit per fornire una maggiore flessibilità nell’identificazione dei messaggi.
 
CAN FD è una variante evoluta del protocollo CAN standard, progettata per supportare velocità di trasmissione dei dati più elevate e carichi di dati più grandi. Questo permette una comunicazione più veloce e affidabile in applicazioni avanzate come l’automotive e l’industria 4.0.
 
CANopen è un insieme di protocolli di alto livello basati su CAN, utilizzato spesso in applicazioni di automazione industriale. Fornisce un framework per definire comunicazioni, dispositivi e funzionalità specifiche del settore.
 
J1939 è uno standard di comunicazione basato su CAN utilizzato nell’industria automobilistica e dei veicoli pesanti per scambiare dati tra i vari sistemi del veicolo.
 
LIN (Local Interconnect Network)  è una variante semplificata di CAN progettata per applicazioni di basso costo e a bassa velocità, come il controllo degli interni dell’automobile.
 

In sintesi, il protocollo CAN è ampiamente utilizzato per la comunicazione affidabile e robusta tra dispositivi distribuiti in molte applicazioni, con varianti progettate per soddisfare requisiti specifici di settore e velocità di comunicazione. La sua flessibilità e affidabilità lo rendono un pilastro nella progettazione dei sistemi di comunicazione moderni.

 

I frame CAN sono organizzati in modo specifico, sia per il formato standard (CAN 2.0A) che per il formato esteso (CAN 2.0B). Di seguito, fornisco una descrizione dettagliata di entrambi i formati. Un frame CAN standard è costituito dai seguenti campi:
 
(i) Il campo SOF (start-of-frame) segnala l’inizio di un frame CAN. Consiste in una sequenza di bit dominanti.
(ii) L’ID (identificativo) del frame standard è di 11 bit. Questo campo contiene l’identificatore del messaggio, che viene utilizzato per determinare la priorità del messaggio. Gli ID più bassi indicano una maggiore priorità.
(iii) RTR (Remote Transmission Request): bit che indica se il frame è un frame dati o un frame remoto. Se è un frame dati, il bit RTR è a 0; se è un frame remoto, il bit RTR è a 1.
(iv) Il bit IDE (Identifier Extension) è a 0 nei frame standard, indicando che l’ID è di 11 bit.
(v) DLC (Data Length Code) specifica la lunghezza dei dati in byte (da 0 a 8 byte). Questo campo può variare per diversi frame.
(vi) Campo dati ( o Data Field) contiene i dati effettivi del messaggio (cioè l’informazione “concreta” che si vuole trasmettere tra i nodi della rete). La lunghezza dei dati è determinata dal valore del campo DLC.
(vii) CRC (Cyclic Redundancy Check) contiene un valore di controllo di ridondanza ciclica utilizzato per la rilevazione degli errori.
(viii) ACK (Acknowledge Bit) è inserito dopo la trasmissione del frame,  per cui il mittente attende il bit di ACK dalla rete per confermare che il frame è stato ricevuto correttamente.
(ix) EOF (End of Frame) indica la fine del frame. Consiste in una sequenza di bit recessivi.
 
Un frame CAN esteso è simile a un frame standard, ma con alcune differenze chiave:
 
(a) IDE (Identifier Extension) : nel frame esteso, il bit IDE è impostato su 1, indicando che l’ID è di 29 bit.
(b) Campo Identificatore (ID): nel frame esteso è di 29 bit. Questo campo contiene l’identificatore del messaggio, che può essere molto più lungo rispetto all’ID a 11 bit nel frame standard.
 
Tutti gli altri campi, come RTR, DLC, campo dati, CRC, ACK e EOF, nel frame CAN esteso funzionano esattamente come nel frame standard.
 

Il formato esteso è utilizzato quando è necessario un numero maggiore di identificatori univoci per i messaggi, come nell’industria automobilistica o in altre applicazioni complesse. Le lunghezze di dati, i tipi di frame e i campi di controllo rimangono invariati tra i due formati.

Il protocollo CAN è ampiamente utilizzato nell’industria automobilistica e in altre applicazioni industriali per una serie di motivi chiave che ne giustificano la preferenza rispetto ad altri protocolli. Di seguito, esamineremo alcuni dei principali vantaggi operativi del CAN che hanno contribuito a renderlo il protocollo dominante in ambiente Automotive/Automation:
 
1. Affidabilità e Robustezza: Il CAN è noto per la sua elevata affidabilità e robustezza. È stato progettato per operare in ambienti rumorosi e ostili, come quelli tipici delle automobili, dove sono presenti interferenze elettromagnetiche, variazioni di tensione e condizioni ambientali estreme. Il sistema di rilevamento degli errori e il meccanismo di ritrasmissione dei frame danneggiati assicurano una comunicazione affidabile.
 
2. Banda Larga: Il CAN supporta velocità di trasmissione dati sufficientemente elevate per soddisfare la maggior parte delle esigenze automobilistiche. Con il protocollo CAN FD (Flexible Data Rate), è possibile ottenere velocità ancora più elevate per supportare applicazioni avanzate senza compromettere l’affidabilità.
 
3. Topologia a Bus: La topologia a bus del CAN consente di collegare facilmente numerosi dispositivi su una singola linea di comunicazione, semplificando l’architettura dei sistemi automobilistici. Questo riduce il costo e la complessità dei cablaggi e delle connessioni.
 
4. Priorità dei Messaggi: Il CAN consente di attribuire priorità ai messaggi tramite l’uso degli identificatori dei messaggi. Questo è essenziale nelle automobili, dove diversi sistemi e sensori devono condividere la stessa rete e garantire che i messaggi critici abbiano la precedenza.
 
5. Efficienza Energetica: Il CAN è noto per il suo basso consumo energetico. Questo è fondamentale nelle applicazioni automobilistiche, in cui la gestione dell’energia è cruciale per preservare la durata della batteria e ridurre il consumo di carburante.
 
6. Sistema di Diagnostica OBD: Il CAN è un componente chiave del sistema di diagnostica On-Board (OBD) utilizzato nelle automobili per il monitoraggio delle prestazioni e la rilevazione di guasti. Questo sistema aiuta a identificare e risolvere tempestivamente i problemi del veicolo.
 
7. Compatibilità e Standardizzazione: Il CAN è ampiamente standardizzato e supportato da molti produttori di chip e dispositivi. Questa standardizzazione favorisce l’interoperabilità tra componenti di diversi fornitori e semplifica lo sviluppo e la manutenzione dei sistemi automobilistici.
 
8. Aggiornamenti Software: Il CAN è adatto per il caricamento di aggiornamenti software nei veicoli. Questo permette di migliorare le funzionalità del veicolo e correggere bug senza dover effettuare costose sostituzioni hardware.
 
9. Economia di Scala: Grazie alla sua ampia adozione nell’industria automobilistica, il CAN beneficia dell’economia di scala, il che significa che i costi di produzione dei componenti CAN sono relativamente bassi rispetto a protocolli meno diffusi.
 
10. Ampia Adozione nell’Industria: Il CAN è stato utilizzato in applicazioni automobilistiche per molti anni ed è ampiamente riconosciuto e accettato dall’industria. Questa familiarità semplifica lo sviluppo e la manutenzione dei sistemi.
 
In sintesi, il CAN è il protocollo preferito nell’industria automobilistica per la sua affidabilità, robustezza, efficienza energetica e capacità di gestire le complesse esigenze di comunicazione in ambienti automotive. La sua ampia adozione e la sua compatibilità rendono il CAN una scelta logica per garantire una comunicazione affidabile e una gestione efficiente dei veicoli moderni. 

0 commenti

Dicci come la pensi

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Protocollo CANopen

Protocollo CANopen

  INTRODUZIONE Il protocollo CANopen rappresenta un importante standard nel campo delle reti di comunicazione industriali, ed è ampiamente utilizzato per il controllo e il monitoraggio di dispositivi e sistemi in una vasta gamma di applicazioni industriali....

Approfondisci...
Protocollo EtherCAT

Protocollo EtherCAT

EtherCAT, acronimo di "Ethernet for Control Automation Technology" è un protocollo di comunicazione industriale ampiamente utilizzato nell'automazione industriale e nel controllo di macchine. È noto per la sua alta velocità, affidabilità e determinismo, ed è stato...

Approfondisci...
Protocollo PROFIBUS

Protocollo PROFIBUS

IBUS (Process Field Bus) è un protocollo di comunicazione industriale introdotto alla fine degli anni '80 dall'associazione PROFIBUS International. Questo protocollo è stato sviluppato per soddisfare le crescenti esigenze di comunicazione affidabile e efficiente nelle...

Approfondisci...
Protocollo MODBUS

Protocollo MODBUS

Il protocollo MODBUS è un protocollo di comunicazione seriale ampiamente utilizzato nell'automazione industriale e nei sistemi di controllo distribuito. È stato sviluppato alla fine degli anni '70 e da allora è diventato uno degli standard più comuni per la...

Approfondisci...
Protocolli RS (Recommended Standard)

Protocolli RS (Recommended Standard)

I protocolli basati su bus seriale più utilizzati sono certamente RS-232, RS-485 ed RS-422, ampiamente utilizzati per la comunicazione seriale tra dispositivi elettronici, in sistemi con basse emissioni elettromagnetiche.  RS-232 è uno standard di comunicazione...

Approfondisci...