TEST & MEASUREMENT
approfondimenti
Automazione e Strumentazione
■
Luglio/Agosto 2014
55
Nel formato dominante con bit a livello basso,
i livelli bassi vengono interpretati come degli
“zero”, mentre i livelli alti vengono interpretati
come degli “uno”. Se tutti i bit trasmessi sono
alti (uno), allora il bus è alto. Se uno o più bit
trasmessi simultaneamente sono bassi (zero),
che è lo stato dominante, il bus si porta al valore
basso.
Il nodo di trasmissione che contiene il frame
con identificativo (ID) più piccolo vince sempre
la gara stabilita dalla procedura di arbitraggio.
In questo esempio specifico, l’ID del frame al
nodo 2 consiste di più zeri tra i bit più significa-
tivi dell’ID a 11 bit. Ciò significa che il frame
al nodo 2 ha l’ID più piccolo e vince sempre
quando compete con gli altri frame ai nodi 1 e 3
che hanno ID più grandi.
I nodi di trasmissione non solo trasmettono
bit, ma campionano anche bit verso la fine di
ciascun tempo di bit (tipicamente campionati a
circa il 75% del tempo di bit). Se trasmettono
un “uno” ma campionano uno “zero”, sanno
che ci devono essere uno o più nodi che tra-
smettono degli “zero” e che hanno la prece-
denza. Ad esempio, durante il bit n. 6, il nodo 1
trasmette un “uno” ma poi campiona uno “zero”
sul bus differenziale. Pertanto, all’inizio del bit
n. 5, il nodo 1 cede il controllo del bus agli altri
nodi di trasmissione. A questo punto, il nodo 1
deve attendere la fine del frame in trasmissione
prima di avere un’altra possibilità di trasmettere
i propri dati.
Anche se la procedura di arbitraggio a livello
di bit funziona, il problema dei sistemi a bus
seriale asincroni basati su questa tecnica, come
le reti CAN, è che spesso vengono ritardati mes-
saggi di importanza critica. Inoltre, se il carico
del bus è elevato (alto duty-cycle, definito come
rapporto tra il tempo di trasmissione dei frame e
il tempo totale del bus, inclusi i tempi di inatti-
vità), può verificarsi un elevato tasso di contesa
del bus che peggiora il BER (Bit Error Rate)
teorico e aumenta i tempi di ripristino da errore.
Ai progettisti di autoveicoli normalmente piace
mantenere il carico sul bus CAN al 30% o a una
percentuale più bassa. Con la complessità sem-
pre crescente dell’elettronica nelle automobili,
questo è il motivo per cui
molte reti intravei-
colari stanno migrando verso il protocollo
CAN-FD
per ridurre il carico sul bus, e/o sul
bus sincrono e con trigger FlexRay, in cui la
procedura di arbitraggio e il carico sul bus non
sono un problema.
Vediamo ora come identificare e caratterizzare
l’arbitraggio utilizzando un oscilloscopio a
memoria digitale (Digital Storage Oscilloscope,
DSO).
Identificare gli arbitraggi
E allora come appare un arbitraggio? Tornando
alla
υ
figura 1
, la traccia rossa rappresenta la
“logica” del bus CAN differenziale. Un livello
alto è alto, un livello basso è basso: non c’è
niente in mezzo, sopra o sotto. Così appare il
bus differenziale se si utilizzano un analizzatore
logico o un analizzatore di protocollo per visua-
lizzare queste informazioni. Ma non è questo
ciò che appare su un oscilloscopio.
La
υ
figura 2
illustra un esempio di cattura e
visualizzazione di un fotogramma CAN su un
oscilloscopio con elevata frequenza di aggior-
namento della forma d’onda. Nell’esempio,
abbiamo sincronizzato il trigger dell’oscillosco-
pio alla comparsa di uno specifico messaggio,
quindi abbiamo decodificato simbolicamente
il bus importando un file .dbc che definisce in
modo specifico i messaggi trasportati da questa
rete CAN. Nell’esempio, il messaggio di trigger
è “Brake_Torque”, che fa riferimento diretta-
mente al frame 0x211
(HEX)
(010 0001 0001
(Bina-
rio)
). L’arbitraggio si è verificato qualche volta
durante questo messaggio, come evidenziato
dai bit bassi a livello più basso del normale che
possono essere osservati nella parte iniziale del
frame/messaggio. Per spiegare il motivo di ciò
(bit bassi più bassi), diamo prima un’occhiata
alla coda del frame.
Alla fine di ciascun frame dovrebbe esserci
un bit di conferma quando tutti gli altri nodi
nel sistema confermano la validità del frame
appena trasmesso. Quando tutti i nodi agiscono
sul bus per portarlo a un livello basso domi-
nante, questa azione simultanea fa sì che venga
assorbita più corrente e che quindi il bus si porti
a un livello basso che è più basso del normale.
Lo stesso fenomeno si verifica all’inizio del
frame se più di un nodo cerca inizialmente di
ottenere accesso al bus. In effetti, in questo
Figura 2 - Dimostrazione
visiva della procedura
di arbitraggio con un
oscilloscopio