Evitare i problemi di trasmissione dei dati del transceiver CAN attraverso i test a livello di sistema
Contributo di Editori nordamericani di DigiKey
2023-10-11
Controller Area Network (CAN) è uno standard di comunicazione robusto e collaudato, utilizzato tra l'altro nei settori dell'automazione industriale e automotive. Esistono due versioni di questa tecnologia: CAN2.0 e la versione più recente, CAN-Flexible Data (FD). I sistemi CAN2.0 esistenti possono essere migliorati con l'aggiunta di nodi CAN-FD, che offrono un throughput del carico utile più elevato per supportare eventi di comunicazione critici.
Queste due tecnologie sono generalmente compatibili, ma con l'aumento della complessità e della lunghezza del bus dei sistemi, la maggiore velocità del CAN-FD nei sistemi misti può causare problemi di sincronizzazione, con conseguenti errori di trasmissione.
Un test del sistema CAN che prevede un singolo bus corto che collega due coppie controller/transceiver può essere soddisfacente per sistemi semplici. Tuttavia, questo test spesso non riesce a rilevare i problemi che possono manifestarsi in sistemi multi-nodo più complessi con una combinazione di componenti CAN2.0 e CAN-FD. L'esecuzione di test esclusivi su tutti i potenziali casi d'uso con un gemello del sistema di produzione può rilevare tutti i problemi che potrebbero verificarsi sul campo.
Questo articolo presenta brevemente CAN2.0 e CAN-FD e spiega le sfide di trasmissione. Descrive poi le tecniche di test per garantire che i sistemi che utilizzano queste reti presentino guasti minimi sul campo. Presenta alcuni esempi di componenti di Analog Devices che incorporano il rilevamento e la segnalazione dei guasti e mostra come l'uso di tali componenti possa accelerare la fase di test e la risoluzione dei problemi nei sistemi implementati. Viene inoltre evidenziata una scheda di valutazione associata.
Cosa sono CAN2.0 e CAN-FD?
CAN è uno standard per le comunicazioni distribuite con gestione integrata dei guasti. Gli strati fisici (PHY) e di collegamento dati (DLL) sono specificati nello standard ISO-118981.
Le caratteristiche di CAN includono:
- Possibilità di più master su un unico bus
- Livelli di priorità intrinseci per i messaggi
- Arbitraggio del bus in base alla priorità dei messaggi
- Rilevamento e recupero degli errori su più livelli
- Sincronizzazione della temporizzazione dei dati tra nodi con sorgenti di clock separate
CAN utilizza uno schema di trasmissione dati a tensione differenziale con due stati di tensione del bus: 'recessivo' (le uscite dei driver sono ad alta impedenza) e 'dominante', con soglie indicate nella Tabella 1.
|
Tabella 1: Livelli di tensione recessivi e dominanti di CAN rispetto a RS-485. Si noti che la tensione dominante (più alta) corrisponde allo "0" logico. (Immagine per gentile concessione di Analog Devices)
I nodi trasmettono lo stato dominante per la logica '0' (in questo stato, una linea del bus (CANH) è alta e l'altra (CANL) è bassa) e lo stato recessivo per la logica '1'. Un bus CAN inattivo si distingue da uno in modalità di trasmissione a bit recessivi attraverso il rilevamento di più bit recessivi alla fine del frame standard o di un frame di errore (Figura 1).
Figura 1: Schema di trasmissione CAN. La modalità inattiva è identificata da molteplici bit recessivi. (Immagine per gentile concessione di Analog Devices)
I transceiver CAN forniscono l'interfaccia PHY differenziale tra il DLL, il controller CAN (che spesso è incorporato in un altro dispositivo come un microcontroller) e il cablaggio fisico del bus CAN. I vari elementi necessari per implementare un'applicazione CAN sono mostrati nella Figura 2, insieme alla loro relazione con i livelli OSI (Open Systems Interconnection) e alle caratteristiche implementate da ciascun elemento.
Figura 2: Il transceiver CAN costituisce l'interfaccia PHY differenziale tra il controller CAN e il bus CAN. (Immagine per gentile concessione di Analog Devices)
CAN2.0 è stato introdotto nel 1991 e offre un throughput nominale di 500 kbit/s. Poiché questa velocità di trasmissione dei dati si è talvolta rivelata insufficiente per eventi di comunicazione critici, nel 2012 è stato presentato CAN-FD. CAN-FD fornisce un throughput nominale fino a 2 Mbit/s per le normali condizioni operative e fino a 5 Mbit/s per la diagnostica o la programmazione. Si noti che la maggiore velocità di comunicazione si applica solo al carico utile del messaggio; gli altri elementi del messaggio, come l'identificatore a 11 bit, il controllo a ridondanza ciclica (CRC) e il riconoscimento (ACK) sono inviati alla velocità CAN2.0 di 500 kbit/s.
Un'ulteriore differenza tra CAN2.0 e CAN-FD riguarda il carico utile del frame di dati standard, che passa da 8 byte per CAN2.0 a 64 byte per CAN-FD. Questo aumento del carico utile rende la comunicazione CAN-FD più efficiente, migliorando il rapporto sovraccarico/dati. Inoltre, i messaggi che in precedenza dovevano essere divisi a causa del limite di 8 byte del carico utile di CAN2.0, utilizzando CAN-FD possono essere combinati in un unico messaggio. Inoltre, la sicurezza può essere migliorata attraverso la crittografia dei messaggi CAN-FD a causa della maggiore velocità di trasmissione dei dati e dell'aumento del carico utile.
È comune mescolare nodi CAN2.0 e CAN-FD nella stessa rete perché i controller CAN-FD supportano entrambi i protocolli CAN2.0 e CAN-FD. Il mix di nodi è comune, perché consente alle reti legacy di migrare al protocollo più veloce per un periodo prolungato. Un aspetto negativo dei sistemi misti è il costo aggiuntivo e la complessità, perché i transceiver devono essere in grado di supportare un metodo di filtraggio CAN-FD sui nodi CAN2.0 per garantire che non vengano creati frame di errore durante la comunicazione CAN-FD.
Meccanismi di arbitraggio e di errore di CAN
Qualsiasi nodo CAN collegato può trasmettere dati sul bus. Per evitare conflitti di comunicazione, i nodi arbitrano l'uso del bus in modo che i messaggi siano trasmessi uno dopo l'altro in base alla loro priorità. CAN impiega un arbitrato non distruttivo e trasparente; il nodo che ha successo durante l'arbitrato continua a trasmettere il suo messaggio a priorità più alta senza che nessun altro nodo interferisca o danneggi le informazioni. Tale arbitrato è possibile perché la trasmissione di un bit dominante sovrascrive lo stato recessivo del bus.
Il frame di dati standard include un identificativo di messaggio e diversi bit indicatori. Queste informazioni sono note come "campo arbitrale", che detta l'arbitrato e, di conseguenza, la priorità dei messaggi. I messaggi con un ID inferiore (più "0" iniziali) hanno una priorità maggiore (Figura 3).
Figura 3: Il frame di dati dello standard CAN comprende un identificativo di messaggio e i bit indicatori RTR e IDE. Questo campo arbitrale determina l'arbitrato e la priorità dei messaggi. (Immagine per gentile concessione di Analog Devices)
Anche con il sistema di arbitrato, qualcosa può non funzionare. Per far fronte ai problemi, il protocollo CAN dispone di meccanismi che supportano il controllo e la gestione degli errori. Questi meccanismi includono:
- Verifica dei bit di trasmissione
- Controllo CRC
- Controlli del campo di bit a forma fissa
- Messaggio obbligatorio ACK
Gli errori vengono gestiti con i seguenti meccanismi:
- Frame di errore
- Contatori di errori
- Stati di errore del nodo
Qualsiasi controller CAN può rilevare gli errori e reagire attivando i frame di errore e i contatori dei nodi di errore. Un frame di errore si distingue per l'uso di sei bit consecutivi dominanti o recessivi. Tale sequenza è in contrasto con le normali regole di trasmissione e può essere rilevata da altri nodi. I nodi che trasmettono frame di errore inviano successivamente bit recessivi finché non viene rilevato che il bus si trova nello stato recessivo. Dopo un'ulteriore trasmissione di sette bit recessivi, il nodo può tentare la trasmissione di frame CAN regolari (Figura 4).
Figura 4: In questo esempio di trasmissione difettosa (a causa di bit in più [1] che hanno generato un errore di bit CRC), il frame di errore di sei bit consecutivi è mostrato all'estrema destra. (Immagine per gentile concessione di Analog Devices)
Oltre alla trasmissione di frame di errore, ogni nodo CAN implementa contatori di errori di trasmissione e ricezione. Un errore aumenta il conteggio di uno, mentre la trasmissione o la ricezione di un messaggio con esito positivo riduce il contatore di uno. In base ai contatori di errore, un nodo può trovarsi in uno stato di "errore attivo", "errore passivo" o "bus spento". Nello stato di errore attivo, il nodo può comunicare sul bus e inviare flag di errore attivi quando vengono rilevati errori. Lo stato di errore passivo si verifica quando il contatore supera 127; in questo stato, il nodo può inviare solo flag di errore passivi. Il nodo diventa nuovamente attivo per errore quando il contatore è inferiore a 127. Se il contatore supera 256, il nodo entra nello stato di bus spento e non può comunicare sul bus. I contatori di nodi possono essere azzerati dopo aver ricevuto 128 sequenze di 11 bit recessivi consecutivi.
L'importanza di un test completo
I meccanismi di arbitraggio e di errore del CAN aiutano a mantenere i sistemi in funzione sul campo quando si verificano dei guasti. Tuttavia, il funzionamento più efficiente è possibile progettando sistemi che limitino i guasti in trasmissione e ricezione. Testare il sistema proposto in diversi scenari operativi è un modo per identificare e correggere le criticità prima dell'implementazione.
Una tecnica comune consiste nell'esercitare il transceiver CAN selezionato trasmettendo frame di dati standard operativi tipici nel pin TxD del transceiver utilizzando un generatore di funzioni e verificando se intervengono errori. Sebbene questo sia un test ragionevole per un singolo nodo, non è una buona rappresentazione di come possa funzionare sul campo un sistema multi-nodo con un bus lungo. Ad esempio, i problemi che possono sorgere con i sistemi complessi includono riflessioni e altri artefatti prodotti dai tronchi dei circuiti durante il funzionamento ad alta frequenza, che possono introdurre uno sfasamento tra i bit.
Il meccanismo di arbitraggio del CAN funziona solo se i bit sono sincronizzati. Se lo sfasamento da bit a bit supera la metà del tempo di trasmissione di un singolo bit, la sincronizzazione non riesce e l'arbitrato è impossibile.
Nei sistemi legacy CAN2.0 che funzionano da 500 kbit/s fino a 1 Mbit/s, il tempo di trasmissione di un singolo bit è di durata tale che gli sfasamenti indotti sono raramente un problema. Tuttavia, grazie alla maggiore velocità di trasmissione di CAN-FD, i tempi di trasmissione dei bit sono ridotti e gli sfasamenti possono diventare significativi.
Queste sfide devono essere mitigate passando dal semplice test di singoli nodi alla verifica di un progetto duplicando l'intero sistema finale e testandolo in varie condizioni operative. Sebbene questa procedura richieda più tempo e costi rispetto al test di base, è molto meno costosa rispetto alla gestione dei guasti sul campo e allo scontento dei clienti.
Un esempio pratico
Per vedere come funziona in pratica il test di sfasamento, si consideri un sistema progettato con un transceiver CAN e un controller CAN di un fornitore selezionato. Il nodo è collegato a un bus di 20 metri, che supporta anche molti altri nodi, compresi i componenti CAN2.0 e CAN-FD. Ai fini del test, il nodo trasmette a 13,3 Mbit/s, che corrisponde a un'ampiezza di bit di 75 ns. Ai fini della sincronizzazione e dell'arbitraggio, il controller campiona all'80% dell'ampiezza del bit TxD, quindi richiede un'ampiezza minima del bit RxD di 0,8 x 75 = 60 ns, compresi il tempo di salita, il tempo di discesa e il ritardo del ciclo. Il componente testato ha prodotto un'ampiezza di bit TxD di 48 ns, con conseguente guasto del sistema.
Lo stesso test è stato eseguito su un transceiver CAN alternativo, il modello MAX33012EASA+ di Analog Devices. In questo test, l'ampiezza del bit TxD è stata misurata a 75 ns, mentre l'ampiezza del bit RxD è stata misurata a 72 ns. L'ampiezza del bit di 72 ns supera il requisito di tempo di campionamento dell'80% di 60 ns, quindi la sincronizzazione e l'arbitrato del sistema funzionano in modo soddisfacente. Il throughput di 13,3 Mbit/s è superiore a quello che il sistema utilizzerà nelle applicazioni target, dimostrando che è sufficientemente robusto per funzionare in tutte le condizioni operative previste (Figura 5).
Figura 5: Risultati di un test con un transceiver CAN MAX33012EASA+ a 13,3 Mbit/s (larghezza del bit TxD di 75 ns) su un bus di 20 metri. L'ampiezza del bit RxD è di 72 ns, sufficiente a garantire il tempo di campionamento dell'80% del controller (60 ns) e la sincronizzazione. (Immagine per gentile concessione di Analog Devices)
Risoluzione dei problemi integrata
Il ciclo di test può essere semplificato e ottimizzato nei costi utilizzando componenti che incorporano il rilevamento e la segnalazione dei guasti. Componenti come il transceiver CAN MAX33012EASA+ non solo evidenziano rapidamente i problemi dei prototipi e dei circuiti CAN di pre-produzione, ma sono anche utili per le applicazioni in cui la rapida risoluzione dei problemi è importante per la distribuzione di sistemi di controllo nel mondo reale.
MAX33012EASA+ è un transceiver CAN a +5 V che risolve i guasti più comuni, come sovracorrenti, sovratensioni ed errori di trasmissione. È protetto dai guasti fino a ±65 V, il che lo rende adatto alle applicazioni in cui è richiesta la protezione dalle sovratensioni. Un intervallo di tensione di modo comune di ±25 V consente la comunicazione in ambienti rumorosi come in presenza di macchinari pesanti. Le uscite CANH e CANL sono limitate in corrente di cortocircuito e protette da una dissipazione di potenza eccessiva grazie a un circuito di arresto termico che pone le uscite del driver in uno stato di alta impedenza.
MAX33012EASA+ funziona fino a 5 Mbit/s e dispone di un'opzione per rallentare la velocità di rotazione a 8 V/μs per ridurre al minimo le interferenze elettromagnetiche (EMI) e consentire l'uso di cavi a doppino intrecciato o paralleli non schermati (Figura 6).
Figura 6: Il circuito applicativo MAX33012EASA+ in un sistema multimodale. In questo esempio, il microcontroller incorpora un controller CAN. (Immagine per gentile concessione di Analog Devices)
Il rilevamento degli errori del transceiver CAN viene abilitato all'accensione facendo passare 100 transizioni basso-alto attraverso TxD (in genere uno o due frame di dati standard, a seconda del protocollo utilizzato). Dopo l'abilitazione del rilevamento dei guasti, se viene rilevato un guasto, sono necessarie altre 16 transizioni da basso ad alto su TxD per trasmettere il codice di guasto. Infine, sono necessari altri 10 impulsi per eliminare il guasto.
Il rilevamento dei guasti di trasmissione viene attivato quando il segnale su RxD non corrisponde a TxD per 10 cicli consecutivi dopo l'abilitazione del rilevamento dei guasti. Ciò può verificarsi, ad esempio, quando mancano entrambi i resistori di terminazione o in presenza di un cortocircuito tra CANH e la massa o CANL e VDD, da cui risulta che il segnale differenziale non rispetta le specifiche.
Analog Devices fornisce una scheda di valutazione, CANbus Interface Arduino Platform Evaluation Board MAX33012E, che può essere utilizzata per dimostrare la funzionalità di MAX33012E. Il dispositivo presenta un fattore di forma per shield Arduino, ma può essere utilizzato come scheda di valutazione indipendente.
Conclusione
Per garantire un funzionamento affidabile sul campo dei sistemi misti CAN2.0 e CAN-FD multimodali, è importante testare a fondo l'intero progetto. Tuttavia, i semplici test su un singolo nodo sono inadeguati quando si tratta di rilevare guasti che potrebbero poi causare guasti sul campo a causa di problemi di sincronizzazione che possono danneggiare il meccanismo di arbitraggio della tecnologia. Il test iniziale e la successiva risoluzione dei problemi sul campo di sistemi CAN misti e multi-nodo possono essere facilitati dalla scelta di transceiver CAN dotati di rilevamento e segnalazione dei guasti integrati.
Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.



