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 trasmissione | Lunghezza max. cavo | Lunghezza max. ramo | Applicazione tipica |
|---|---|---|---|
| 1 Mbit/s | 40 m | 0,3 m | Controllo macchine, connessioni corte all'interno del quadro |
| 500 kbit/s | 100 m | 0,3 m | Azionamenti industriali, sala macchine compatta |
| 250 kbit/s | 250 m | 0,3 m | HVAC multi-chiller, sala macchine di piano |
| 125 kbit/s | 500 m | 0,3 m | Dorsale edificio, collegamenti tra piani |
| 50 kbit/s | 1000 m | 0,3 m | Lunghe tratte cavo, siti di grandi dimensioni |
| 20 kbit/s | 2500 m | 0,3 m | Campus, 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).
| Campo | Bit | Descrizione |
|---|---|---|
| SOF | 1 | Start of Frame — bit dominante che sincronizza tutti i ricevitori |
| ID arbitraggio (standard) | 11 | Identificatore messaggio — valore inferiore = priorità più alta sul bus |
| ID arbitraggio (esteso) | 29 | Formato frame esteso — include base 11 bit + estensione 18 bit |
| RTR | 1 | Remote Transmission Request — 1 = richiesta dati da un altro nodo |
| IDE | 1 | Bit di estensione identificatore — 0 = frame standard, 1 = frame esteso |
| DLC | 4 | Data Length Code — numero di byte di dati: da 0 a 8 |
| Dati | 0–64 bit | Payload: 0–8 byte per CAN classico; fino a 64 byte per CAN FD |
| CRC | 15 + 1 | Controllo di ridondanza ciclica a 15 bit più delimitatore CRC (bit recessivo) |
| ACK | 2 | Slot di acknowledgement (dominante) + delimitatore ACK (recessivo) |
| EOF | 7 | End 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 errore | Metodo di rilevamento | Causa frequente |
|---|---|---|
| Errore CRC | Il ricevitore ricalcola il CRC e lo confronta con il valore trasmesso | Bit di dati corrotti da EMI o cavo lungo |
| Errore di bit | Il trasmettitore monitora il bus e rileva la discordanza del proprio livello di bit | Cortocircuito, contesa sul bus, guasto cablaggio |
| Errore di frame | I campi a formato fisso (EOF, delimitatore CRC) verificati per il livello corretto | Guasto bit stuffing, struttura frame corrotta |
| Errore ACK | Il trasmettitore verifica che almeno un ricevitore invii ACK dominante | Nodo mancante, velocità di trasmissione errata, nessuna terminazione |
| Errore di stuffing | Dopo 5 bit consecutivi dello stesso livello, deve seguire un bit complementare | EMI 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).
| Parametro | CAN classico | CAN FD |
|---|---|---|
| Velocità arbitraggio max. | 1 Mbit/s | 1 Mbit/s (uguale — compatibile con le versioni precedenti) |
| Velocità fase dati max. | 1 Mbit/s | 8 Mbit/s |
| Byte payload max. | 8 byte | 64 byte |
| Lunghezza CRC | 15 bit | 17 o 21 bit (più lungo per payload maggiori) |
| Uso in automazione edifici | Diffuso — la maggior parte dei dispositivi HVAC | Emergente — 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.
| Strumento | Interfaccia | Caso d'uso |
|---|---|---|
| PEAK-System PCAN-USB | Dongle USB, ~€100 | Software gratuito PCAN-View — analisi traffico, invio frame, registrazione CSV |
| PEAK-System PCAN-USB FD | Dongle USB CAN FD, ~€130 | Come sopra ma supporta la fase dati CAN FD fino a 8 Mbit/s |
| Vector CANalyzer | Scheda PCI/USB, professionale | Analisi completa del protocollo, visualizzazione dizionario oggetti CANopen, scripting |
| Kvaser Leaf Light v2 | Dongle USB, ~€180 | Software 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 |
Guide correlate
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 →