Sei entrato in macchina, hai premuto il pulsante di avviamento e il motore ha preso vita in pochissimo tempo, ma come ha fatto la tua auto a decidere se doveva avviarsi o meno?

Bene, per far partire l'auto, diverse antenne e centraline elettroniche hanno comunicato con il portachiavi. Il protocollo Controller Area Network (CAN) garantisce che la comunicazione tra il telecomando, le antenne e le centraline avvenga in modo appropriato all'interno dell'auto.

Allora, qual è il protocollo CAN e in che modo aiuta i dispositivi sui sistemi del tuo veicolo a lavorare insieme? Bene, scopriamolo.

Che cos'è il protocollo CAN e perché è necessario?

In passato, le auto non avevano molta elettronica. Infatti, se volevi avviare il tuo veicolo nei primi anni del 1900, dovevi uscire dal tuo veicolo e avviare il motore a mano.

Le auto di oggi, al contrario, hanno diversi sensori elettronici e dispositivi elettronici controllano tutto, dalla temperatura dell'abitacolo ai giri dell'albero motore.

Detto questo, i dati ricevuti da questi sensori non hanno alcun valore finché non vengono elaborati. Questa elaborazione dei dati viene eseguita da dispositivi informatici noti come unità di controllo elettroniche (ECU).

instagram viewer

Crediti immagine: SenseiAlan/Flickr

A differenza di un computer con una singola CPU, un'auto ha diverse ECU, ognuna delle quali è responsabile dell'esecuzione di un determinato compito. Sebbene queste centraline possano eseguire una singola attività in modo efficiente, devono lavorare insieme per garantire funzionalità come addominali e ESC lavorare bene.

Per questo motivo, tutte le centraline di un'auto devono essere collegate. Si potrebbe utilizzare una topologia punto a punto per effettuare queste connessioni, in cui ogni ECU è collegata direttamente a ogni altra ECU. Tuttavia, questa architettura renderebbe il sistema complesso. Infatti, un veicolo moderno ha oltre 70 ECU, e collegarle in modo uno a uno aumenterebbe esponenzialmente il peso del cablaggio.

Per risolvere questo problema, Bosch, insieme a Mercedes-Benz e Intel, ha creato il protocollo Controller Area Network nel 1986. Questo protocollo ha consentito alle centraline di comunicare tra loro utilizzando un bus dati condiviso noto come bus CAN.

Come funziona PUÒ?

Il protocollo CAN è una metodologia di comunicazione basata su messaggi che si basa su una serie di doppini intrecciati per la trasmissione dei dati. Questi cavi sono conosciuti come CAN alto e CAN basso.

Per consentire la trasmissione dei dati su questi fili, i loro livelli di tensione vengono modificati. Questi cambiamenti nei livelli di tensione vengono quindi tradotti in livelli logici che consentono alle centraline di un'auto di comunicare tra loro.

Credito immagine: Spinningspark/Wikimedia

Per trasmettere una logica sul bus CAN, la tensione di entrambe le linee è impostata a 2,5 volt. Questo stato è anche noto come stato recessivo, il che significa che il bus CAN è disponibile per l'uso da qualsiasi ECU.

Al contrario, lo 0 logico viene trasmesso sul bus CAN quando la linea CAN alta è a una tensione di 3,5 volt e la linea CAN bassa è a 1,5 volt. Questo stato del bus è anche noto come stato dominante, che dice a ogni ECU nel sistema che un'altra ECU sta trasmettendo, quindi dovrebbero attendere fino al termine della trasmissione prima di iniziare a trasmettere il messaggio.

Per abilitare queste variazioni di tensione, le centraline dell'auto sono collegate al bus CAN tramite un ricetrasmettitore CAN e un controller CAN. Il ricetrasmettitore è responsabile della conversione dei livelli di tensione sul bus CAN in livelli che l'ECU può comprendere. Il titolare del trattamento, invece, è utilizzato per gestire i dati ricevuti e garantire che i requisiti del protocollo siano rispettati.

Tutte queste centraline collegate al bus CAN possono trasmettere dati sul cavo twistato, ma c'è un problema, solo il messaggio con la priorità più alta può essere trasmesso sul bus CAN. Per capire come una ECU trasmette i dati sul bus CAN, è necessario comprendere la struttura dei messaggi del protocollo CAN.

Comprendere la struttura del messaggio del protocollo CAN

Ogni volta che due centraline vogliono comunicare, sul bus CAN vengono trasmessi messaggi con la struttura sottostante.

Questi messaggi vengono trasferiti modificando i livelli di tensione sul bus CAN e il design a doppino intrecciato dei cavi CAN previene il danneggiamento dei dati durante la trasmissione.

  • SOF: Abbreviazione di Start Of Frame, il bit SOF è un frame di dati a singolo bit dominante. Questo bit viene trasmesso da un nodo quando vuole inviare dati sul bus CAN.
  • Identificatore: L'identificatore sul protocollo CAN può avere una dimensione di 11 bit o 29 bit. La dimensione dell'identificatore si basa sulla versione del protocollo CAN in uso. Se viene utilizzata la versione estesa di CAN, la dimensione dell'identificatore è di 29 bit e, in altri casi, la dimensione dell'identificatore è di 11 bit. L'obiettivo principale dell'identificatore è identificare la priorità del messaggio.
  • RTR: La richiesta di trasmissione remota o RTR viene utilizzata da un nodo quando è necessario richiedere dati da un altro nodo. Per fare ciò, il nodo che desidera i dati invia un messaggio con un bit recessivo nel frame RTR al nodo previsto.
  • DLC: Il codice lunghezza dati definisce la dimensione dei dati trasmessi nel campo dati.
  • Campo dati: Questo campo contiene il carico utile dei dati. La dimensione di questo carico utile è di 8 byte, ma i protocolli più recenti come CAN FD aumentano la dimensione di questo carico utile a 64 byte.
  • CRC: Abbreviazione di Cyclic Redundancy Check, il campo CRC è un frame di controllo degli errori. Lo stesso ha una dimensione di 15 bit ed è calcolato sia dal ricevitore che dal trasmettitore. Il nodo trasmittente crea un CRC per i dati quando vengono trasmessi. Alla ricezione dei dati, il ricevitore calcola il CRC per i dati ricevuti. Se entrambi i CRC corrispondono, l'integrità dei dati è confermata. In caso contrario, i dati presentano errori.
  • Campo di conferma: Una volta ricevuti i dati e privi di errori, il nodo ricevente inserisce un bit dominante nel frame di riconoscimento e lo rimanda al trasmettitore. Questo dice al trasmettitore che i dati sono stati ricevuti e sono privi di errori.
  • Fine del fotogramma: Una volta completata la trasmissione dei dati, vengono trasmessi sette bit recessivi consecutivi. Ciò garantisce che tutti i nodi sappiano che un nodo ha completato la trasmissione dei dati e possono trasmettere i dati sul bus.

Oltre ai bit di cui sopra, il protocollo CAN ha alcuni bit riservati per un uso futuro.

Semplificare il CAN attraverso un esempio

Ora che abbiamo una conoscenza di base di come appare un messaggio sul bus CAN, possiamo capire come i dati vengono trasmessi tra diverse ECU.

Per semplicità, diciamo che la nostra macchina ha 3 centraline: Nodo 1, Nodo 2 e Nodo 3. Delle 3 ECU, il Nodo 1 e il Nodo 2 vogliono comunicare con il Nodo 3.

Vediamo come il protocollo CAN aiuta a garantire la comunicazione in uno scenario del genere.

  • Rilevamento dello stato dell'autobus: Tutte le centraline dell'auto sono collegate al bus CAN. Nel caso del nostro esempio, il Nodo 1 e il Nodo 2 vogliono inviare i dati a un'altra ECU; prima di farlo, entrambe le centraline devono controllare lo stato del bus CAN. Se il bus è in uno stato dominante, le centraline non possono trasmettere dati poiché il bus è in uso. Se invece il bus è in stato recessivo, le centraline possono trasmettere dati.
  • Invio dell'inizio del frame: Se la tensione differenziale sul bus CAN è zero, sia il Nodo 1 che il Nodo 2 cambiano lo stato del bus in dominante. Per fare ciò, la tensione di CAN alta viene aumentata a 3,5 volt e la tensione di CAN bassa viene ridotta a 1,5 volt.
  • Decidere quale nodo può accedere al bus: Una volta inviato il SOF, entrambi i nodi competono per accedere al bus CAN. Il bus CAN utilizza il protocollo Carrier Sense Multiple Access/Collision Detection (CSMA/CD) per decidere a quale nodo deve accedere. Questo protocollo confronta gli identificatori trasmessi da entrambi i nodi e dà accesso a quello con la priorità più alta.
  • Invio dati: Una volta che il nodo ha accesso al bus, il campo dati, insieme al CRC, viene inviato al ricevitore.
  • Verifica e chiusura della comunicazione: Alla ricezione dei dati, il Nodo 3 controlla il CRC dei dati ricevuti. Se non ci sono errori, il Nodo 3 invia un messaggio CAN al nodo trasmittente con un bit dominante sul frame di riconoscimento insieme all'EOF per terminare la comunicazione.

Diversi tipi di CAN

Sebbene la struttura del messaggio utilizzata dal protocollo CAN rimanga la stessa, la velocità di trasmissione dei dati e la dimensione dei bit di dati vengono modificate per trasferire larghezze di banda di dati maggiori.

A causa di queste differenze, il protocollo CAN ha versioni diverse e di seguito viene fornita una panoramica dello stesso:

  • CAN ad alta velocità: I dati sui cavi CAN vengono trasmessi in serie e questa trasmissione può essere eseguita a velocità diverse. Per la CAN ad alta velocità, questa velocità è di 1 Mbps. A causa di questa elevata velocità di trasmissione dei dati, la lattina ad alta velocità viene utilizzata per le centraline elettroniche, che controllano il gruppo propulsore e i sistemi di sicurezza.
  • CAN a bassa velocità: Nel caso di CAN a bassa velocità, la velocità di trasmissione dei dati viene ridotta a 125 kbps. Poiché la bassa velocità può offrire velocità di trasmissione dati inferiori, viene utilizzata per collegare centraline che gestiscono il comfort del passeggero, come l'aria condizionata o il sistema di infotainment.
  • Può FD: Abbreviazione di CAN flexible data rate, CAN FD è la versione più recente del protocollo CAN. Aumenta la dimensione del frame di dati a 64 byte e consente alle centraline di trasmettere dati a velocità comprese tra 1 Mbps e 8 Mbps. Questa velocità di trasmissione dei dati può essere gestita dalle centraline in tempo reale in base ai requisiti di sistema, consentendo il trasferimento dei dati a velocità più elevate.

Qual è il futuro della comunicazione automobilistica?

Il protocollo CAN consente a più ECU di comunicare tra loro. Questa comunicazione abilita funzioni di sicurezza come il controllo elettronico della stabilità e sistemi avanzati di assistenza alla guida come il rilevamento degli angoli ciechi e il cruise control adattivo.

Detto questo, con l'avvento di funzionalità avanzate come la guida autonoma, la quantità di dati trasmessi dal bus CAN sta aumentando in modo esponenziale. Per abilitare queste funzionalità, stanno entrando sul mercato versioni più recenti del protocollo CAN, come CAN FD.