Controller Area Network: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Fix link segnalato in [ https://tools.wmflabs.org/lists/itwiki/Disambigue/Redirect_che_puntano_a_disambigua ]
Nessun oggetto della modifica
Riga 4:
 
== Trasmissione dati ==
Il CAN trasmette dati secondo un modello basato su [[Bit (informatica)|bit]] "dominanti" e "recessivi", in cui i bit dominanti sono gli '''0''' ''logici'' ede i bit recessivi sono gli '''1''' ''logici''. Se un nodo trasmette un bit dominante ede un altro un bit recessivo, allora il bit dominante "vince" fra i due (realizzando una combinazione [[Algebra di Boole|AND logico]]).
 
{| align="center" cellpadding="20" border="0"
Riga 32:
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 inizianoincominciano 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 trasmesso. 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 inizianoincominciano contemporaneamente a trasmettere inviano un ID dominante a 0 binario, che iniziaincomincia 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) ede 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, ede il messaggio con la priorità corrente massima può liberamente transitare.
 
== I frame ==
 
Tutti i frame (detti anche "messaggi") inizianoincominciano 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.
Riga 152:
:2. Viene rilevato un bit dominante durante un intervallo nella trasmissione.
 
Un overload frame dovuto al caso 1 è consentito solo per essere avviato al momento del primo bit di un intervallo previsto, mentre un overload frame dovuto al caso 2 iniziaincomincia un bit dopo aver rilevato il bit dominante. L'Overload Flag è costituito da sei bit dominanti (tutti pari a 0). La forma complessiva è come quella di un active error flag, che azzera i campi intervalli. Conseguentemente, anche gli altri nodi della rete rilevano una condizione di overload e trasmettono un overload flag. L'overload Delimiter è costituito da 8 bit recessivi (tutti pari a 1) e ha la stessa forma di un "delimitatore di errore" (''Error Delimiter'').
 
== Bit stuffing ==