CAN (Controller Area Network)


INTRODUZIONE

Il protocollo CAN (Controller Area Network) è stato inizialmente creato dal fornitore tedesco di sistemi automobilistici Bosch a metà degli anni 1980 per applicazioni automotive come metodo per consentire una comunicazione seriale robusta. L'obiettivo era rendere le automobili più affidabili, sicuri e con maggiore efficienza energetica riducendo il peso e la complessità del cablaggio. Sin dal suo inizio, il protocollo CAN ha guadagnato grande popolarità nel campo della automazione industriale e nelle applicazioni per autoveicoli / camion. Altri mercati in cui le soluzioni con impiego di reti di comunicazioni può portare attraenti vantaggi (apparecchiature medicali,di testing) stanno cominciando a utilizzare il protocollo CAN. L'obiettivo di questo tutorial è spiegare alcuni dei principi fondamentali e i vantaggi di scegliere il CAN come soluzione di sistemi con comunicazione di rete.

PANORAMICA SUL CAN

La maggior parte delle applicazioni di rete seguono un approccio a strati per la implementazione di sistema. Questo approccio sistematico consente l'interoperabilità tra prodotti provenienti da produttori diversi. Uno standard (norma) è stato creato dalla International Standards Organization (ISO) come modello da seguire per questo approccio a strati. Questo standard si chiama ISO Open Systems Interconnection (OSI) Network Layering Reference Model ed e' mostrato in figura 1.

modello a strati per reti ISO/OSI

Fig.1 - modello a strati per reti ISO/OSI

Il protocollo CAN implementa la maggior parte dei due strati più bassi (Data Link e Physical Layer) di questo modello di riferimento. La sessione relativa al mezzo di comunicazione del modello è stato volutamente lasciato fuori dalla specifica CAN della BOSCH per consentire ai progettisti di sistema di adattare e ottimizzare il protocollo di comunicazione su più supporti doppino (twisted pair), singolo filo, otticamente isolato, RF, IR, ecc) e per avere la massima flessibilità. Tuttavia questa flessibilità porta a dei problemi di interoperabilità. Per facilitare alcuni di questi problemi, l'Organizzazione internazionale per la standardizzazione (ISO) e la SAE (societa di ingegneria per l'automobile) hanno definito alcuni protocolli basati sul
CAN che includono la definizione della interfaccia in modo da avere ale che tutti i due strati più bassi dello standard OSI specificati. Sono stati definiti lo standard ISO11898 utilizzato per applicazioni ad alta velocità, l'ISO11519 per applicazioni a bassa velocità, e o standard J1939 (elaborato dal SAE) per applicazioni su camion e autobus.
Tutti e tre i protocolli utilizzano un bus differenziale a 5V come l'interfaccia fisica. Il resto degli strati di ISO / OSI del protocollo sono lasciati liberi per essere implementati dagli sviluppatori di software di sistema. I livelli più alti del protocollo detti HLP (Higher Layer Protocols) sono generalmente utilizzati per implementare i cinque strati superiori del modello di riferimento OSI. I livelli HLP definiscono alcune funzioni:

1) standardizzare le procedure di avvio tra cui i la velocità di bit utilizzata (bit rate);

2) la distribuzione degli indirizzi tra i nodi partecipanti o i tipi di messaggi;

3) determinare la struttura dei messaggi;

4) fornire le routine per la gestione degli errori a livello di sistema