![Show Menu](styles/mobile-menu.png)
![Page Background](./../common/page-substrates/page0106.jpg)
APRILE 2015
AUTOMAZIONE OGGI 380
106
AO
TUTORIAL
negli edifici, per gestire impianti domotici, macchine utensili,
strumentazione di laboratorio, apparecchiature elettromedicali e
persino giocattoli. I motivi che hanno portato a una così ampia
adozione di CAN in settori tanto diversi sono molteplici. Innanzi-
tutto, la semplicità e i bassi costi di cablaggio: nelle sue incarna-
zioni più popolari CAN fa uso di un semplice doppino intrecciato
(UTP o STP) per trasmettere un segnale di tensione differenziale.
Certe versioni utilizzano persino un solo filo (oltre a un necessario
ritorno di massa, per esempio costituito dall’intelaiatura del vei-
colo) per semplificare ulteriormente il cablaggio.
Il fatto che il protocollo sia orientato al contenuto, con nodi privi
di indirizzo, che trasmettonomessaggi inmodalità broadcast, fa sì
che sia possibile aggiungere o rimuovere i dispositivi senza dover
riconfigurare la rete. CAN si contraddistingue inoltre per l’elevata
immunità ai disturbi: il segnale differenziale è indifferente ai di-
sturbi di modo comune, inclusi eventuali offset nel livello di massa
delle varie parti del sistema; il bus CAN può persino continuare a
operare anche quando uno dei fili venga cortocircuitato a massa
o con l’alimentazione. La robustezza è garantita anche da mecca-
nismi multipli di rilevamento degli errori e di richiesta di ritrasmis-
sione dei messaggi corrotti, tutti implementati in hardware. Per
evitare che la compromissione di un nodo si propaghi all’intero
sistema, ogni controller CAN è poi in grado di diagnosticare il pro-
prio malfunzionamento e di autoescludersi dalla rete in caso di
errori ripetuti. Tutte queste caratteristiche, unite alla possibilità di
assegnare priorità ai messaggi e di garantire un tetto alla latenza
massima, hanno fatto di CAN una risposta ideale alle esigenze di
comunicazioni deterministiche in complessi sistemi dedicati.
In principio fu Bosch
Le prime specifiche di CAN rese pubbliche da Bosch portavano il
numero di versione 1.1 e descrivevano un bus seriale caratteriz-
zato dalla velocità massima di 125 kbps e messaggi con identifi-
catori da 11 bit. La versione 1.2 del protocollo ha incrementato la
tolleranza dell’oscillatore ed è stata essenzialmente riportata tale
e quale nella variante A dello standard CAN 2.0. Nota anche come
Basic o Standard CAN, la versione 2.0A dello standard proposto
da Bosch è stata originariamente incorporata da ISO nello stan-
dard 11519. La versione 2.0B, nota anche come ‘Full’, ‘Extended’
o ‘High-Speed’ CAN, porta la velocità massima di trasmissione a 1
Mbps (tutte le velocità massime dipendono dalla lunghezza del
bus) e introduce frame estesi con un campo identificatore di 29
bit. Fatte salve alcune limitazioni, le due versioni di CAN 2.0 sono
in grado di convivere sulla stessa rete e sono comunemente usate
nelle applicazioni odierne.
Basic CAN e Full CAN si differenziano anche per il modo in cui
sono realizzati i rispettivi controller. Nel caso di Basic CAN solo
le funzioni essenziali del protocollo sono implementate diretta-
mente in hardware; i messaggi sono trasferiti in un buffer e la loro
gestione è effettuata dal computer host.
In Full CAN, invece, i controller sono più complessi e si occupano
di tutti i compiti di comunicazione, incluso il filtraggio dei mes-
saggi, liberando il computer host da tali incombenze.
Con l’evoluzione delle tecnologie, i controllori CAN hanno finito
per essere incorporati direttamente sui chip dei microcontrollori
in soluzioni altamente integrate, che, per la loro compattezza ed
economicità, hanno dato un contributo significativo all’amplia-
mento del mercato.
Un bus, molti standard
Il protocollo CAN originario, le sue varianti e svariati altri bus di
comunicazioni su di esso basati sono stati oggetto di standar-
dizzazione da parte di enti nazionali e internazionali come ISO e
SAE, nonché di consorzi di aziende tesi a promuovere la propria
versione di rete di microcontrollori.
Nel 1993 ISO ha introdotto lo standard 11898 ‘Road vehicles - In-
terchange of digital information - Controller area network (CAN)
for high-speed communication’, che ha successivamente incor-
porato lo standard ISO 11519 e ulteriori varianti del protocollo
CAN. Le prime due parti dello standard ISO 11898, Part 1 ‘Data link
layer and physical signalling’ e Part 2 ‘High-speed MediumAccess
Unit’, descrivono, nel contesto del modello ISO/OSI, l’implemen-
tazione del bus CAN ad alta velocità con segnali differenziali su
doppino intrecciato.
La versione a bassa velocità (tra 40 e 125 kbps) ed elevata tol-
leranza ai guasti del bus CAN è descritta nella terza parte dello
standard (Part 3 ‘Low-speed, fault-tolerant, medium-dependent
interface’). Si tratta di un’implementazione di CAN che è in grado
Diversa implementazione delle funzioni nei controller per
Basic CAN e Full CAN
Strutturadei framedati nelle implementazioni BasicCANeFull CAN