CAN bus · ISO 11898-2 · CAN FD · Livello fisico · Rilevamento errori · 9 min di lettura

Fondamentali del CAN Bus: livello fisico, struttura dei frame e rilevamento degli errori

Sviluppato da Bosch nel 1986 e standardizzato come ISO 11898, CAN bus è il fieldbus di base per apparecchiature HVAC, chiller, azionamenti a velocità variabile e controller per l'automazione degli edifici. La segnalazione differenziale, l'arbitraggio hardware e il rilevamento degli errori a cinque livelli lo rendono molto più robusto di RS485 Modbus nelle sale macchine elettricamente rumorose — e la comprensione di questi fondamentali è essenziale prima di distribuire qualsiasi dispositivo CANopen.

Livello fisico ISO 11898-2 e segnalazione differenziale

ISO 11898-2 definisce il CAN ad alta velocità — la variante utilizzata in quasi tutte le applicazioni di automazione degli edifici e industriali. Il livello fisico utilizza una coppia differenziale: CAN_H (CAN High) e CAN_L (CAN Low), entrambe riferite a GND. Nello stato recessivo (logica 1), entrambe le linee fluttuano a circa 2,5V e la tensione differenziale è 0V. Nello stato dominante (logica 0), CAN_H viene portato a circa 3,5V e CAN_L a circa 1,5V, producendo un differenziale di 2V immune ai disturbi in modo comune fino a ±30V.

Utilizzare cavo in coppia intrecciata schermata con impedenza caratteristica di 120Ω — Belden 9841 (coppia singola, 24AWG) o equivalente. Collegare la schermatura solo a un'estremità (tipicamente al quadro) per evitare anelli di massa. Entrambe le estremità del segmento bus devono essere terminate con una resistenza di 120Ω tra CAN_H e CAN_L. La terminazione divisa (due resistenze da 60Ω con un condensatore da 4,7nF verso massa al punto medio) migliora le prestazioni EMC in ambienti ad alto rumore.

Cablaggio CAN bus — connessione a 3 fili

CAN bus cable (Belden 9841 or equivalent, 120Ω STP):
  CAN_H  → CAN_H terminals on all nodes
  CAN_L  → CAN_L terminals on all nodes
  GND    → GND terminals on all nodes (reference, not signal ground)

Termination resistors:
  Node 1 (first node on bus): 120Ω between CAN_H and CAN_L
  Node N (last node on bus): 120Ω between CAN_H and CAN_L
  All intermediate nodes: NO termination

Measure termination (bus powered off):
  CAN_H to CAN_L resistance should read ~60Ω
  (Two 120Ω resistors in parallel = 60Ω)
  Values outside 54–66Ω indicate missing or extra termination

Attenzione: La topologia a stella e ad albero non sono consentite su CAN bus. Tutti i nodi devono connettersi a un singolo cavo trunk lineare — i rami laterali devono essere mantenuti sotto 0,3m per prevenire le riflessioni del segnale. I rami lunghi causano errori di bit dominante ad alte velocità di trasmissione.

Velocità di trasmissione versus lunghezza del cavo

La velocità di trasmissione di CAN bus è limitata dal ritardo di propagazione — il tempo necessario a un segnale per raggiungere il nodo più lontano e tornare prima che il periodo di bit termini. ISO 11898-2 specifica le combinazioni standard di velocità di trasmissione e lunghezza del cavo. I sistemi di automazione degli edifici raramente necessitano di 1 Mbit/s; 125 kbit/s o 250 kbit/s è tipico per le apparecchiature HVAC su percorsi di cavo di 100–500m tra sale macchine.

Velocità di trasmissioneLunghezza max. cavoLunghezza max. ramoApplicazione tipica
1 Mbit/s40 m0,3 mControllo macchine, connessioni corte all'interno del quadro
500 kbit/s100 m0,3 mAzionamenti industriali, sala macchine compatta
250 kbit/s250 m0,3 mHVAC multi-chiller, sala macchine di piano
125 kbit/s500 m0,3 mDorsale edificio, collegamenti tra piani
50 kbit/s1000 m0,3 mLunghe tratte cavo, siti di grandi dimensioni
20 kbit/s2500 m0,3 mCampus, raramente usato

Nota: Tutti i nodi su un singolo segmento CAN devono funzionare alla stessa velocità di trasmissione. Non è possibile mescolare dispositivi a 250 kbit/s e 125 kbit/s sullo stesso bus — utilizzare un ripetitore CAN o segmenti separati collegati tramite gateway se sono richieste velocità diverse.

Struttura dei frame CAN

Il frame dati CAN standard (ISO 11898-1) è composto da sette campi. La comprensione del campo ID di arbitraggio è critica per la configurazione CANopen — il COB-ID (Communication Object Identifier) utilizzato in CANopen è l'ID CAN standard a 11 bit. I frame estesi utilizzano ID a 29 bit e sono usati in CANopen con COB-ID a 4 byte (modalità di indirizzamento esteso).

CampoBitDescrizione
SOF1Start of Frame — bit dominante che sincronizza tutti i ricevitori
ID arbitraggio (standard)11Identificatore messaggio — valore inferiore = priorità più alta sul bus
ID arbitraggio (esteso)29Formato frame esteso — include base 11 bit + estensione 18 bit
RTR1Remote Transmission Request — 1 = richiesta dati da un altro nodo
IDE1Bit di estensione identificatore — 0 = frame standard, 1 = frame esteso
DLC4Data Length Code — numero di byte di dati: da 0 a 8
Dati0–64 bitPayload: 0–8 byte per CAN classico; fino a 64 byte per CAN FD
CRC15 + 1Controllo di ridondanza ciclica a 15 bit più delimitatore CRC (bit recessivo)
ACK2Slot di acknowledgement (dominante) + delimitatore ACK (recessivo)
EOF7End of Frame — 7 bit recessivi

Meccanismi di rilevamento degli errori

CAN ha cinque meccanismi indipendenti di rilevamento degli errori che operano simultaneamente. Ogni errore rilevato causa il rifiuto del frame corrente da parte di tutti i nodi e il ri-invio da parte del trasmettitore. Un nodo che causa ripetutamente errori passa dallo stato error-active a error-passive fino allo stato bus-off, proteggendo la rete da un nodo difettoso.

Tipo di erroreMetodo di rilevamentoCausa frequente
Errore CRCIl ricevitore ricalcola il CRC e lo confronta con il valore trasmessoBit di dati corrotti da EMI o cavo lungo
Errore di bitIl trasmettitore monitora il bus e rileva la discordanza del proprio livello di bitCortocircuito, contesa sul bus, guasto cablaggio
Errore di frameI campi a formato fisso (EOF, delimitatore CRC) verificati per il livello correttoGuasto bit stuffing, struttura frame corrotta
Errore ACKIl trasmettitore verifica che almeno un ricevitore invii ACK dominanteNodo mancante, velocità di trasmissione errata, nessuna terminazione
Errore di stuffingDopo 5 bit consecutivi dello stesso livello, deve seguire un bit complementareEMI che causa una sequenza dello stesso livello superiore a 5 bit

Arbitraggio bitwise non distruttivo

Quando due o più nodi tentano di trasmettere contemporaneamente, CAN risolve il conflitto tramite arbitraggio bitwise senza distruggere nessuno dei messaggi. Ogni nodo monitora il bus durante la trasmissione — se un nodo trasmette un bit recessivo (1) ma legge un bit dominante (0), smette immediatamente di trasmettere e passa in modalità ricevitore. Il nodo con l'ID di arbitraggio numerico più basso vince sempre.

In CANopen, questo significa che i COB-ID inferiori hanno priorità più alta. I messaggi di emergenza (EMCY, COB-ID 0x080 + ID nodo) e i messaggi heartbeat ricevono COB-ID inferiori rispetto ai dati PDO — garantendo che gli allarmi non vengano mai ritardati dal traffico di dati di processo. Assegnare gli ID di nodo più bassi ai dispositivi più critici come gateway per pannelli antincendio o controller degli allarmi chiller.

CAN FD — Flexible Data-rate

CAN FD (ISO 11898-1:2015) estende il CAN classico con due miglioramenti: una velocità di trasmissione della fase dati variabile fino a 8 Mbit/s (rispetto a 1 Mbit/s per il CAN classico) e una dimensione del payload fino a 64 byte (rispetto a 8 byte). La fase di arbitraggio funziona ancora alla velocità classica per compatibilità — solo la fase dati commuta alla velocità più alta dopo il bit BRS (Bit Rate Switch).

ParametroCAN classicoCAN FD
Velocità arbitraggio max.1 Mbit/s1 Mbit/s (uguale — compatibile con le versioni precedenti)
Velocità fase dati max.1 Mbit/s8 Mbit/s
Byte payload max.8 byte64 byte
Lunghezza CRC15 bit17 o 21 bit (più lungo per payload maggiori)
Uso in automazione edificiDiffuso — la maggior parte dei dispositivi HVACEmergente — nuovi VFD, contatori di energia

Nota: La maggior parte dei dispositivi CAN per l'automazione degli edifici (chiller, UTA, azionamenti VFD) utilizza ancora il CAN classico a 125 o 250 kbit/s. L'hardware CAN FD (PEAK-System PCAN-USB FD, Vector CANalyzer FD) è compatibile con le versioni precedenti e può comunicare con nodi CAN classici sullo stesso segmento, purché la fase dati non venga attivata quando si comunica con nodi classici.

Strumenti diagnostici

Utilizzare un analizzatore CAN durante la messa in servizio per verificare il traffico sul bus, monitorare i frame di errore e confermare gli ID dei nodi prima dell'integrazione con un gateway CANopen. Tre strumenti sono standard nel settore.

StrumentoInterfacciaCaso d'uso
PEAK-System PCAN-USBDongle USB, ~€100Software gratuito PCAN-View — analisi traffico, invio frame, registrazione CSV
PEAK-System PCAN-USB FDDongle USB CAN FD, ~€130Come sopra ma supporta la fase dati CAN FD fino a 8 Mbit/s
Vector CANalyzerScheda PCI/USB, professionaleAnalisi completa del protocollo, visualizzazione dizionario oggetti CANopen, scripting
Kvaser Leaf Light v2Dongle USB, ~€180Software gratuito Kvaser CanKing — adatto alla messa in servizio in campo
PCAN-View (gratuito)Software (Windows)Usato con adattatori PEAK — filtrare per COB-ID, monitorare contatori di errore

Avete bisogno di un quadro CAN bus con integrazione gateway CANopen?

Progettiamo e costruiamo quadri elettrici di bassa tensione con gateway CANopen-verso-KNX/Modbus/BACnet, corretta terminazione 120Ω, cablaggio CAN schermato e documentazione di messa in servizio per siti HVAC e industriali.

Richiedi un preventivo →
Caricamento in corso ...
Torna all'inizio