|
|||
CAN (Controller Area Network) - 6 |
|||
|
|||
|
|||
GESTIONE DEGLI ERRORI Ci sono cinque condizioni di errore che sono definite nel protocollo CAN e tre stati di errore in cui un nodo può trovarsi in base al tipo e al numero di condizioni di errore riscontrate. Errore di CRC Un CRC a 15-bit è calcolato dal nodo che trasmette caricandolo nel campo CRC. Tutti i nodi presenti nella rete ricevono questo messaggio, calcolano il CRC e verificano che il CRC ricevuto corrisponda con quello da loro calcolato. Se questi non corrispondono, si verifica un errore di CRC e un frame di errore (Error Frame) e' generato dal nodo. Se almeno un nodo non ha correttamente visualizzato il messaggio, il messaggio viene poi nuovamente inviato dopo un intervallo di tempo. Errore di Acknowledge Nel campo di Acknowledge di un messaggio, il nodo di trasmissione controlla se, nell'intervallo di tempo dedicato al ACK (ACK slot) in cui sta inviando un bit recessivo, e' presente un bit dominante. La presenza di un bit dominante permette di conoscere che almeno un nodo del bus ha ricevuto correttamente il messaggio. Se il bit è recessivo vuol dire che nessun nodo ha ricevuto il messaggio correttamente. Si e' verificato un errore di Ackknowledge. Un frame di errore è quindi generato e il messaggio originale verrà ripetuto. Errore di forma Si verifica un errore di forma nel caso in cui un nodo rileva un bit "dominante" in uno dei seguenti quattro segmenti del messaggio: end of frame, Interframe Space, ACK Del o in CRC Del. Il messaggio originale e' nuovamente inviato dopo un intervallo di tempo corretto. Errore di bit Un errore di bit si verifica se un nodo trasmettitore invia un bit "dominante" e rileva un bit recessivo, o se si invia un bit recessivo e rileva un bit dominante nella fase in cui compara il livello effettivo del bus e il bit che sta inviando. Se durante la fase di arbitrato o l'intervallo di ACK un bit dominante è rilevato al posto del recessivo che si sta trasmettendo e nessun errore di bit e’ generato perche’ perché un normale arbitrato o ack sta avvenendo. Se un bit di errore è rilevato, allora un frame di errore e' generato e il messaggio originale è nuovamente inviato. Errore stuff Il protocollo CAN utilizza un metodo di trasmissione NRZ. Ciò significa che il livello di bit è posto sul bus per l'intera tempo del bit. La comunicazione CAN è anche asincrona, e la codifica NRZ e' utilizzata per consentire al nodo ricevente di sincronizzarsi recuperando il clock dal flusso di dati ricevuto. I nodi riceventi si sincronizzano sulla transizione da bit recessivo a dominante (transizione 0 -> 1). Se nel stringa di dati vi sono più di cinque bit dello stesso tipo, Il CAN automaticamente inserisce un bit di polarità opposta nel flusso di dati. Il nodo(i) ricevente utilizzerà questo bit per la sincronizzazione, ma ignorerà questo bit per la definizione dei dati. Se, tra l'inizio del frame e il delimitatore di CRC, vengono rilevati sei bit consecutivi con la stessa polarità, la regola di stuff è stata violata e si verifica errore e un frame di errore viene inviato, e il messaggio e’ ripetuto. |
|
||
|
|||
|
|||
|