Caratteristiche Elettriche del Controller Area Network (CAN Bus) (PARTE 2)

Struttura del livello fisico del CAN bus

La Figura di seguito   illustra un esempio pratico di questa connessione, rappresentando un CAN bus con tre nodi.

Il bus è composto da un cavo a doppino intrecciato e terminato su entrambe le estremità con un resistore, il quale stabilisce la resistenza caratteristica del bus.

I due cavi del bus sono denominati CAN_H e CAN_L.

Terminazione del CAN bus

La terminazione resistiva è essenziale per ridurre al minimo le riflessioni del segnale sul CAN bus.

Solitamente, si collega un resistore da 120 ohm a ciascuna estremità del bus.

Nella maggior parte dei casi si usa un singolo resistore da 120 ohm, su entrambe le terminazioni, ma esistono diverse metodologie di terminazione, tra cui:

  •  Terminazione standard
  •  Terminazione split

La configurazione maggiormente usata è la terminazione standard, in cui viene utilizzato un resistore da 120 ohm a ciascuna estremità del bus, come illustrato nella figura del paragrafo precedente.

La terminazione split, sta diventando sempre più popolare:

Con questa configurazione, si utilizzano due resistori da 60 ohm e un condensatore a ciascuna estremità del bus.

In questo caso si ha il vantaggio di eliminare il rumore ad alta frequenza sulle linee del bus.

Tuttavia, è importante selezionare il corretto valore di capacità per ottenere l’immunità al rumore desiderata sul bus, ovviamente dipende dall’ambiente dove è installato il sistema.

Generalmente, si seleziona un condensatore da 4,7 nF, che produce una risposta in frequenza con una attenuazione di -3 dB a circa 1,1 Mbps.

È fondamentale notare che i resistori di terminazione devono essere posizionati alle estremità del bus.

Un valore errato del resistore di terminazione in una posizione non corretta può causare delle riflessioni sul bus e di conseguenza una probabilità di ricevere un dato errato più alta.

Nonostante l’uso comune di cavi non schermati nella maggior parte delle applicazioni del CAN bus, ma in ambienti difficili, dove c’è un elevato inquinamento elettromagnetico, come può essere un impianto industriale o un’automobile, direi che è indispensabile, per diminuire i disturbi che potrebbero accoppiarsi con la linea è quella di utilizzare dei cavi schermati.

La schermatura deve essere collegata terra in un punto vicino al cavo del bus (vedere Figura di seguito).

Con questa configurazione, si prevengono le correnti parassite, cioè si evita il loop di corrente tra terra e schermatura.

La velocità con cui si può trasmettere sul bus è di 1 Mb/s con una distanza massima di 40 metri, con questa configurazione si garantisce una probabilità molto bassa di errore in ricezione.  

Ovviamente, le considerazioni sopraesposta, bisogna tenere conto anche del contesto in cui è usato in CAN bus, cioè se è usato in ambiente “rumoroso” e/o il cavo è stato schermato.

La lunghezza massima del bus può essere estesa, ma a discapito di una velocità più bassa della trasmissione dei dati, la tabella di seguito fornisce la relazione tra velocità di trasmissione dati e la lunghezza del cavo.

Per esempio, a 1000 kbps con una durata di un singolo bit trasmesso 1 μs, la lunghezza massima consentita del bus è di 40 m, mentre a 10 kbps con durata di 100 μs, la lunghezza massima consentita è di 6600 m.

 In sostanza, la scelta della lunghezza del cavo e della velocità di trasmissione dipende dalle specifiche esigenze del sistema e dalla probabilità d’errore che s’è disposti ad accettare.

Struttura di un Nodo, Integrazione nei Microcontrollori

Un nodo del CAN  bus è formato da un controller CAN e da un transceiver CAN, come mostrato nella figura di seguito

Il controller CAN è collegato a un microcontrollore, mentre il transceiver  collegato fisicamente al bus.

Alcuni microcontrollori, come quelli basati su architettura ARM, integrano transceiver CAN  nel proprio chip, rendendo possibile la creazione di un nodo CAN senza la necessità di un chip transceiver esterno con riduzione dei costi e ingombro sul PCB.

Nel caso in cui il microcontrollore non disponga di tale circuito integrato, sarà necessario utilizzare un controller CAN esterno e un chip transceiver.

Esistono anche moduli CAN completi con controller e chip transceiver integrati, essi di solito comunicano con il microcontrollore tramite il bus SPI.

I dati trasmessi sul CAN bus sono differenziali, e il bus specifica due stati logici: dominante e recessivo.

La Figura di seguito illustra lo stato dei segnali sul bus:

Lo stato recessivo corrisponde alla logica “1”, con una tensione differenziale sul bus (Vdiff = CAN_H – CAN_L) di circa 0 V (idealmente CAN_H = CAN_L = 2,5 V).

In pratica, la tensione differenziale recessiva è inferiore a 0,05 V sull’uscita del trasmettitore.

Lo stato dominante corrisponde alla logica “0”, con una tensione differenziale sul bus di circa 2 V (idealmente CAN_H = 3,5 V e CAN_L = 1,5 V). In pratica, la tensione differenziale dominante è compresa tra 1,5 V e 3,0 V.

La tensione di CAN_H è la metà della tensione d’alimentazione, in questo caso 2,5 V nei momenti in cui non viene trasmesso alcun messaggio o quando il CAN bus è in stato recessivo.

Arbitraggio del bus

Quando più dispositivi sono collegati a un bus e cercano di trasmettere dati contemporaneamente, la logica di arbitraggio del bus decide quale dispositivo può trasmettere.

Uno stato di bit dominante ha sempre la precedenza su uno stato di bit recessivo.

Quando la logica di arbitraggio concede l’accesso a un dispositivo, quel dispositivo può inviare i suoi dati sul bus. I dati di altri dispositivi che stanno tentando di trasmettere si interrompono e rimangono in attesa che si liberi il bus.

In modo più semplice, per garantire una priorità elevata a un messaggio, è importante che sia composto da una sequenza di zeri consecutivi, ovvero da bit che hanno un valore dominante in modo continuo.

Quando si progetta un sistema e si desidera assegnare una priorità elevata a un messaggio proveniente da un sensore che monitora un sistema di sicurezza importante, è necessario che nella decodifica del messaggio ci siano il maggior numero possibile di bit dominanti consecutivi.

Trasceiver del bus

L’uscita di un circuito transceiver CAN di solito è configurata come open-collector (ad esempio, logica TTL) o open-drain (ad esempio, logica CMOS). Questi circuiti utilizzano transistor che sono progettati per permettere il passaggio del segnale dal bus solo quando l’uscita del dispositivo è a livello logico “1”.

Quando si collegano più dispositivi a un bus, lo stato complessivo del bus è determinato dalla logica AND delle uscite dei singoli dispositivi, noto anche come “Wired AND”.

 Ad esempio, se ci sono tre dispositivi collegati al bus, lo stato del bus sarà “1” solo se tutte e tre le uscite dei dispositivi sono a livello logico “1”; in caso contrario, il bus sarà a livello logico “0”.

In questo modo si può garantire un arbitraggio di tipo passivo, cioè non c’è un dispositivo che autorizza la trasmissione dei dati ad un determinato dispositivo.

Perché ogni dispositivo che trasmette un dato monitorizza la linea, se il dato corrisponde con quello trasmesso il nodo continua a trasmettere altrimenti interrompe la trasmissione e attende che si liberi il canale. E’ ovvio, come indicato in precedenza, se un dispositivo ha un maggior numero di bit zero consecutivi avrà possesso del bus  

Ogni dispositivo che invia i dati sul bus controlla la linea di trasmissione.

Se il dato inviato corrisponde a quello che aveva trasmesso, il dispositivo continua a inviare; altrimenti, interrompe la trasmissione e aspetta che il canale sia libero.

 Come già spiegato, se un dispositivo ha più bit zero consecutivi, ha il controllo del bus.

Connettori e Collegamenti del CAN bus

Sebbene il CAN bus sia un bus a due soli fili, i connettori CAN standard includono spesso anche l’alimentazione.

I cavi del CAN bus possono essere di due tipi:

  • A coppia intrecciata: In questo tipo di cavo, i due fili che trasportano i segnali sono intrecciati tra loro. Questa disposizione aiuta a ridurre le interferenze elettriche esterne.
  • A coppia intrecciata e schermata: In questo tipo di cavo, i due fili che trasportano i segnali sono ancora intrecciati ma hanno una copertura di materiale conduttore, solitamente rame, che scherma il cavo da interferenze esterne.

I cavi schermati sono preferibili in ambienti elettrici rumorosi e quando sono necessari collegamenti particolarmente lunghi.

Il connettore CAN standard è un connettore D-sub a 9 pin (DE-9). I pin 2 e 7 sono generalmente i segnali CAN_L e CAN_H.

 I pin 3 e 9 sono utilizzati come pin d’alimentazione.

Conclusioni

Vi aspetto per il prossimo articolo, in cui esploreremo ulteriori concetti teorici prima di passare a un’entusiasmante applicazione pratica con Arduino.

Vi invito anche ad iscrivervi al nostro blog per essere sempre aggiornati sulle nostre nuove pubblicazioni e iniziative.

Non perdete l’opportunità di rimanere al passo con le ultime novità nel mondo dell’elettronica e della programmazione!

Buon divertimento!

Lascia una risposta

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

Ti sei iscritto alla newsletter

There was an error while trying to send your request. Please try again.

Quattrodispositivi utilizzerà le informazioni fornite in questo modulo per restare in contatto con te e fornire aggiornamenti del sito