Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Controller Area Network - Wikipedia

Controller Area Network

Da Wikipedia, l'enciclopedia libera.

Il Controller Area Network, noto anche come CAN-bus, è uno standard seriale per bus di campo (principalmente in ambiente automotive), di tipo multicast, introdotto negli anni 80 dalla Robert Bosch GmbH, per collegare unità elettroniche di controllo (ECU). Il CAN è stato espressamente progettato per funzionare senza problemi anche in ambienti fortemente disturbati dalla presenza di onde elettromagnetiche e può utilizzare come mezzo trasmissivo una linea a differenza di potenziale bilanciata come la RS-485. L'immunità ai distubi EMC può essere ulteriormente aumentata utilizzando cavi di tipo twisted pair (doppino intrecciato).

Sebbene inizialmente applicata in ambito automotive, come bus per autoveicoli, attualmente è usata in molte applicazioni industriali di tipo embedded, dove è richiesto un alto livello di immunità ai disurbi. Il bit rate può raggiungere 1 Mbit/s per reti lunghe meno di 40 m. Velocità inferiori consentono di raggiungere distanze maggiori (ad es. 125 kbit/s per 500 m). Il protocollo di comunicazione del CAN è standardizzato come ISO 11898-1 (2003). Questo standard descrive principalmente lo strato (layer) di scambio dati (data link layer), composto dallo strato sottostante (sublayer) "logico" (Logical Link Control, LLC) e dallo strato sottostante del Media Access Control, (MAC) e da alcuni aspetti dello strato "fisico" (physical layer) descritto dal modello ISO/OSI (ISO/OSI Reference Model). I protocolli di tutti gli altri layer sono lasciati alla libera scelta del progettista della rete.

Indice

[modifica] Trasmissione dati

Il CAN trasmette dati secondo un modello basato su bit "dominanti" e "recessivi", in cui i bit dominanti sono gli 0 logici ed i bit recessivi sono gli 1 logici. Se un nodo trasmette un bit dominante ed un altro un bit recessivo, allora il bit dominante "vince" fra i due (realizzando una combinazione AND logico).

Tabella della verità dei bit dominanti/recessivi (AND logico)
Stato del bus quando due nodi trasmettono
dominante recessivo
dominante dominante dominante
recessivo dominante recessivo
AND logico
0 1
0 0 0
1 0 1

Con questa tecnica, quando viene trasmesso un bit recessivo, e contemporaneamente un altro dispositivo trasmette un bit dominante, si ha una collisione, e solo il bit dominante è visibile in rete (tutte le altre collisioni sono invisibili). In pratica avviene che un bit dominante è "asserito" dalla generazione di una tensione fra i conduttori, mentre un bit recessivo è semplicemente ignorato. Si è così sicuri che ogni volta che si impone una differenza di potenziale, tutta la rete la rileva, e quindi "sa" che si tratta di un bit dominante.

Solitamente, quando usata in un bus differenziale, si applica lo schema CSMA/BA (Carrier Sense Multiple Access/Bitwise Arbitration): se due o più dispositivi iniziano a trasmettere contemporaneamente, si applica un meccanismo di arbitrato basato sulla priorità per decidere a quale dispositivo permettere di proseguire la trasmissione. Durante la trasmissione, ogni nodo in trasmissione controlla lo stato del bus e confronta il bit ricevuto con il bit trsmesso. Se un bit dominante è ricevuto mentre un bit recessivo è trasmesso il nodo interrompe la trasmissione (ossia perde l'arbitrato). L'arbitrato è eseguito durante la trasmissione del pacchetto dei dati di identificazione del nodo. I nodi che iniziano contemporaneamente a trasmettere inviano un ID dominante a 0 binario, che inizia con il bit alto. Non appena il loro ID è rappresentato da un numero più grande (quindi a priorità minore) i nodi stessi inviano un bit 1 (recessivo) ed aspettano la risposta di uno 0 (dominante), quindi interrompono la trasmissione. Al termine dell'invio degli ID, tutti i nodi sono tornati allo stato di OFF, ed il messaggio con la priorità corrente massima può liberamente transitare.

[modifica] Frames

Tutti i frames (detti anche "messaggi") iniziano con un bit di "start-of-frame" (SOF). I frame del CAN possono essere di quattro tipi:

  • Data frame: frame contenente i dati che il nodo trasmette.
  • Remote frame: frame che richiede la trasmissione di un determinato identificatore.
  • Error frame: frame trasmesso da un qualsiasi nodo che ha rilevato un errore.
  • Overload frame: frame che introduce un ritardo fra data frame e/o remote frame.

[modifica] Data frame

Sono i frame che eseguono l'effettiva trasmissione dei dati. I messaggi possono avere due formati:

  • Base frame format: con 11 bit di identificazione.
  • Extended frame format: con 29 bit di identificazione.

Lo standard CAN deve obbligatoriamente riconoscere il formato base frame e può opzionalmente riconoscere il formato extended frame format (che, tuttavia, deve essere tollerato).

Il CAN base permette 211 = 2048 tipi di messaggi diversi, ma per ragioni storiche se ne usano solo 2031. Nella versione extended si possono avere fino a 229 = 536 870 912 tipi di messaggi.

[modifica] Formato del Base frame

Il formato del base frame ha la seguente struttura:

Nome del campo Lunghezza (numero di bit) Funzione
Start-of-frame 1 Indica l'avvio della sequenza di trasmissione
Identificatore 11 Identificatore (unico) dei dati
Richiesta remota di transmissione (RTR) 1 Deve essere un bit dominante
Bit aggiuntivo di identificazione (IDE) 1 Deve essere un bit dominante
Bit riservato (r0) 1 Riservato
Codice di lunghezza dati (DLC) 4 Numero di byte per codificare ciascun dato (0-8 byte)
Campo dati 0-8 byte Dati da trasmettere (la lunghezza è specificata dal campo DLC)
CRC 15 Controllo di parità a ridondanza
delimitatore CRC 1 Deve essere un bit recessivo
Slot ACK 1 Il transmittitore invia un bit recessivo e ogni ricevitore può confermare la ricezione con un bit dominante
Delimitatore ACK 1 Deve essere un bit recessivo
End-of-frame (EOF) 7 Deve essere un bit recessivo

Un vincolo imposto al campo dell'identicatore è che i primi 7 bit non possono essere tutti recessivi.

[modifica] Formato dell'Extended frame

Il formato dell'Extended Frame ha la seguente struttura:

Nome del campo Lunghezza (numero di bit) Funzione
Start-of-frame 1 Indica l'avvio della sequenza di trasmissione
Identificatore A 11 Prima parte dell'identificatore (unico) dei dati
Richiesta remota sostitutiva (SRR) 1 Deve essere un bit recessivo
Bit aggiuntivo di identificazione (IDE) 1 Deve essere un bit recessivo
Identificatore B 18 Seconda parte dell'identificatore (unico) dei dati
Richiesta remota di trasmissione (RTR) 1 Deve essere un bit dominante
Bit riservati (r1 & r0) 2 Riservati
Codice di lunghezza dati (DLC) 4 Numero di byte del dato (0-8 byte)
Campo dati 0-8 byte Dati da trasmettere (lunghezza specificata dal campo DLC)
CRC 15 Controllo di parità a ridondanza
Delimitatore CRC 1 Deve essere un bit recessivo
Slot ACK 1 Il transmittitore invia un bit recessivo e ogni ricevitore può confermare la ricezione con un bit dominante
Delimitatore ACK 1 Deve essere un bit recessivo
End-of-frame (EOF) 7 Deve essere un bit recessivo

I due identificatori (A e B) combinati, formano un unico identificatore di 29 bit.

[modifica] Remote Frame

Il Remote Frame è identico al Data Frame, eccetto che:

  • il bit RTR posto allo stato di bit recessivo,
  • il campo lunghezza dati contiene il numero di frame richiesti dal data frame.

[modifica] Error Frame

L'Error Frame è composto da due campi:

  • il primo è formato dalla combinazione dei flag di errore attivati da uno dei nodi collegati alla rete;
  • il secondo è il cosiddetto "delimitatore di errore" (Error Delimiter)

Esistono due tipi di Error Flag:

  • Active Error Flag: trasmessi da un nodo che ha rilevato un errore di rete, e che si trova nello stato di "error active";
  • Passive Error Flag: trasmessi da un nodo che ha rilevato la presenza sulla rete di un Active Error Flag, e che si trova nello stato di "error passive".

[modifica] Overload frame

[modifica] Bit stuffing

Consiste nell'inserire un bit di valore opposto dopo cinque bit consecutivi dello stesso valore. Questa pratica è chiamata bit stuffing (letteralmente riempimento di bit), ed è resa possibile dall'applicazione dell'algoritmo di codifica denominato NRZ (Non Return to Zero). I frame sottoposti a questa operazione vengono poi "decodificati" dal ricevitore, che rimuove i bit precedentemente inseriti. Di conseguenza, quando vengono ricevuti sei bit uguali consecutivi dello stesso valore (111111 oppure 000000), essi vengono considerati un errore. Il bit stuffing implica che i frame dati trasmessi possono essere più grandi di quelli che ci si potrebbe aspettare dall'applicazione delle tabelle soprariportate.

[modifica] Standard ISO applicabili

  • ISO 11898-2: CAN ad alta velocità
  • ISO 11898-3: CAN fault-tolerant (a bassa velocità)
  • ISO 11992-1: CAN fault-tolerant per autoveicoli
  • SAE J2411: CAN single-wire CAN (SWC)

Lo standard ISO 11898-2 utilizza per i segnali una linea bilanciata a due fili. É il layer fisico più usato in applicazioni per autotrazione e controlli industriali.

Lo standard ISO 11898-4 definisce il tipo di comunicazione del CAN detto time-triggered (TTCAN), basato su un protocollo di layer fornito di un orologio di sistema per schedulare l'inoltro dei messaggi.

[modifica] Layer applicativi

Poiché lo standard CAN non prevede di per sé protocolli di layer applicativo, come ad esempio il controllo di flusso, l'indirizzamento dei dispositivi collegati al bus e la trasmissione di blocchi dati più grandi di un singolo messaggio hanno richiesto l'implementazione di appositi protocolli di layer. Fra questi si annoverano DeviceNet, CanOpen, SDS e CAN Kingdom.

[modifica] Voci correlate

[modifica] Collegamenti esterni

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com