Automazione_Strumentazione_3_2014 - page 76

tecnica
Aprile 2014
Automazione e Strumentazione
76
RETI INDUSTRIALI
Il meccanismo di bit stuffing definito dal protocolloController AreaNetwork (CAN)
è causa di variabilità nella durata della trasmissione dei messaggi sul bus e può
peggiorare l’accuratezza con cui i comandi vengono attuati dai dispositivi nei sistemi
di controllo distribuiti in tempo reale. Un semplicemeccanismo di codifica, implementato
in software tramite un codec ad alte prestazioni, può ridurre drasticamente tale problema
e rendereCAN adatto a sistemi che richiedono elevata precisione temporale.
Gianluca Cena
Ivan Cibrario Bertolotti
TingtingHu
Adriano Valenzano
Un codec a basso jitter
per reti CAN
A più di vent’anni dalla sua introduzione il pro-
tocollo
ControllerAreaNetwork
(CAN)
[1]
ha
conosciuto un’ottima diffusione anche al di fuori
del settore veicolistico, ambito applicativo per
il quale era stato inizialmente concepito. CAN
è correntemente utilizzato negli ambienti indu-
striali e, soprattutto, nei sistemi embedded distri-
buiti, anche grazie alla sua semplicità e ai bassi
costi implementativi, chene rendonovantaggioso
l’usononostante le sueprestazioni non sianopar-
ticolarmente elevate (se confrontate, ad esempio,
con soluzioni basate suEthernet).
A livello fisico,CANutilizzaunacodificadi tipo
non-return tozero
(NRZ) con
bit stuffing
(BS).
In particolare, ogni qualvolta sono rilevati 5 bit
consecutivi allo stesso valore nella sequenza di
bit trasmessa sul bus, i controller CAN introdu-
cono automaticamente un bit al valore opposto.
Tali bit, denominati
stuffbit
, servonoacreareun
numero adeguato di transizioni sul bus, inmodo
da consentire ai ricevitori di sincronizzare i pro-
pri circuiti edecodificarecorrettamente il segnale
ricevuto. Gli stuff bit sono rimossi dai controller
CAN in fase di ricezione prima di decodificare il
messaggio.
Ilmeccanismodi bit stuffingpermetteun’elevata
efficienzadi codificadel segnale. Purtroppo, esso
introduce anche una variabilità indesiderata dei
tempi di trasmissione dei messaggi, effetto che,
in teoria, può determinare nel caso peggiore flut-
tuazioni temporali (
jitter
) pari alla durata di
24
bit
. Infatti, il numero di stuff bit inseriti in ogni
singolo messaggio dipende dal contenuto dello
stesso, contenuto che nonpuò essere noto in fase
di progetto in quanto tipicamente dipendente dal
valoredellevariabili di processo.
Se, come accade nellamaggior parte dei sistemi
basati suCAN, l’
interrupt
relativoalla ricezione
di un messaggio viene utilizzato dai dispositivi
perpilotareazioni a livelloapplicativo (per esem-
pio, attuare segnali in uscita, effettuare campio-
namenti sugli ingressi, ecc.), la presenza di stuff
bit può peggiorare la qualità del controllo, intro-
ducendo di fatto un’incertezza nella valutazione
dei tempi.
In molti tipi di applicazione questa variabilità
può essere trascurata, ma nel caso di sistemi ad
alta precisione essa può risultare particolarmente
fastidiosa e difficile da eliminare inquantopecu-
liare del protocollo. Per ovviare a questo pro-
blema nel decennio passato sono state proposte
diverse soluzioni
[2][3]
. Inquestoarticolodescri-
viamo brevemente una tecnica di codifica, deno-
minata
8B9B
[4][5]
, che è di fattoun’evoluzione
delle proposte precedenti. Essa è infatti in grado
dioffrireprestazioninotevolmentesuperiori tanto
in termini di efficienzadi codificaquantodi velo-
cità di esecuzione, e rappresenta attualmente il
megliodello statodell’arte.
A titolo di esempio si tenga presente che, in una
rete CAN operante a 500 kb/s, 8B9B è in grado
di ridurre i jitter di trasmissionedovuti al bit stuf-
fingdacirca50μsamenodi
10μs
. Indeterminati
contesti applicativi (sistemi dimisura e controllo
ad elevata accuratezza) il beneficio è dunque più
che sensibile.
Nell’ambito delle attività di ricerca su 8B9B è
stato sviluppato un
codec
software ottimizzato
per piattaforme
embedded
in grado di effettuare
codificaedecodifica in tempidell’ordinedipochi
microsecondi e con un
footprint
di circa
1 kB
.
Tale soluzione può quindi essere incorporata
direttamente in nuovi progetti e nei dispositivi
esistenti conestrema facilità.
Formatodelle trameCAN
Ogni trama CAN contiene un certo numero di
campi. Comemostrato nella parte inferiore della
υ
figura 1
, il messaggio comincia con un bit di
inizio trama (SOF) a valore 0, seguitodal campo
GLI AUTORI
G. Cena, Senior Member, IEEE;
I. C. Bertolotti, Member, IEEE;
T. Hu, Member, IEEE; A. Valen-
zano, SeniorMember, IEEE.
1...,66,67,68,69,70,71,72,73,74,75 77,78,79,80,81,82,83,84,85,86,...102
Powered by FlippingBook