|
|||
CAN (Controller Area Network) - 2 |
|||
|
|||
|
|||
CARATTERISTICHE DI BASE DEL PROTOCOLLO CAN BIT DOMINANTE E RECESSIVO Nel protocollo CAN si definiscono i bit come "dominante" e come "recessivo". Un bit dominate vince su un bit recessivo. Se un nodo trasmette un bit dominante e contemporaneamente un altro nodo trasmette un bit recessivo allora sul bus sara’ presente quello dominate. Nel protocollo CAN si definisce il bit logico 0 come bit 'dominante" e il bit logico 1 come bit 'recessivo'. Dal punto di vista elettrico e di interfaccia si può pensare che il bit 1 sia forzato sul bus da un resistore di pull-up mentre lo zero dominante dal un trasnsistor con il drain sul bus CSMA / CD Il protocollo di comunicazione CAN è un CSMA /
CD. La sigla CSMA e' l'acronimo di Carrier Sense Multiple Access. Ciò
significa che ogni nodo sulla rete deve monitorare il bus per
individuare un periodo di assenza di attività prima di provare a
inviare un messaggio sul bus (procedura di Carrier Sense).
Inoltre, una volta che questo periodo di non attività si verifica, ogni
nodo sul bus ha una uguale possibilità di trasmettere un messaggio (Multiple
Access). La sigla CD sta per Collision Detection. Se due nodi della
rete di iniziano a trasmettere allo stesso tempo, i nodi rileveranno la
'collisione' e adottano i provvedimenti del caso. Nel protocollo CAN, è utilizzato un metodo di arbitraggio non distruttivo per i bit del messaggio. Ciò significa che i messaggi rimangono intatti dopo che l'arbitraggio è stato completato anche se delle collisioni sono state accertate. Tutti gli arbitrati si svolgono senza la corruzione o il ritardo del messaggio ad più alta priorità. Per sostenere un arbitrato non distruttivo sui bit bisogna avere :
Un bit 'dominante vince sempre nel corso di un arbitrato su un bit recessivo, quindi più basso e' il valore del Messaggio Identifier (il campo utilizzato nel processo di arbitrato del messaggio), maggiore è la priorità del messaggio in quanto contiene un numero maggiore di zeri che sono dominanti. Come esempio, si supponga che due nodi stanno cercando di trasmettere un messaggio allo stesso tempo. Ogni nodo controllerà il bus per assicurarsi che i bit che sta cercando di inviare effettivamente appare sul bus. Il nodo che trasmette il messaggio a più bassa priorità ( il valore del suo MI e' alto) quando monitorerà il bus verrà un bit dominante al posto del bit recessivo che sta trasmettendo. A quel punto questo nodo perde l'arbitrato e immediatamente ferma la trasmissione. Il nodo con il messaggio a più alta priorità, continuerà fino al completamento della trasmissione mentre il nodo che ha perso l'arbitrato aspetterà il prossimo periodo di assenza di attività sul bus per cercare di trasmettere il suo messaggio. COMUNICAZIONE CON MESSAGGI Il protocollo CAN è un protocollo basato sui messaggi, non
sull'indirizzamento. Ciò significa che i messaggi non vengono trasmessi
da un nodo ad un altro nodo sulla base di indirizzi. Il messaggio
stesso contiene la priorità e il contenuto dei dati trasmessi. Tutti i
nodi del sistema ricevono tutti i messaggi trasmessi sul bus e danno il
notifica se il messaggio è stato ricevuto correttamente (procedura
acknowledge). |
|
||
|
|||
|
|||
|