• Non ci sono risultati.

2.4 Descrizione dello stato dell’arte

3.1.3 Gestione degli errori

Dato che il CAN `e stato sviluppato inizialmente per l’uso in applicazioni au- tomotive una delle sue principali caratteristiche `e l’efficienza nella rilevazione e gestione degli errori, elemento critico in questo campo applicativo.

I nodi CAN hanno la capacit`a di rilevare un errore e passare in una moda- lit`a adeguata allo stato operativo in cui si trova l’interfaccia che al limite pu`o addirittura autodisattivarsi (stato di bus-off ); questa caratteristica prende il nome di Fault Confinement. Nessuna CAN Station difettosa pu`o rischiare di monopolizzare la rete grazie al suo progressivo confinamento che subisce alla rilevazione degli errori15. Il nodo CAN `e anche in grado di rilevare piccoli di- sturbi provocati ad esempio dalle tolleranze di funzionamento dell’oscillatore e modificare il proprio comportamento di conseguenza (risincronizzazione).

15Il nodo in condizioni normali si trova nello stato Error Active, alla rilevazione e gene-

razione di un sufficiente numero di errori passa in modalit`a Error Passive ed al limite, in caso di gravi malfuzionamenti pu`o addirittura essere disattivato (stato di Bus-off ).

Capitolo 3. Informazioni preliminari 70

3.1.3.1 Cause di errore

Le cause che possono provocare un errore in fase di trasmissione e ricezione di un dato sul bus sono diverse; le principali sono di seguito riepilogate e descritte.

1. Ogni nodo pu`o avere un differente istante di campionamento e quindi per effetto del disturbo pu`o verificarsi che due nodi A e B leggano due livelli logici differenti. Soglia Punto di campionamento NODO A Punto di campionamento NODO B R e ce s si v o Disturbo

2. Due diversi nodi possono avere so- glie diverse di riconoscimento dei livelli logici. Soglia NODO B Istante di campionamento R ec e s. B Soglia NODO A R e ce s . A Disturbo

3. Il segnale lungo la linea si attenua e quindi si pu`o avere una degradazione eccessiva del dato.

Soglia Segnale attenuato re c e s 3.1.3.2 Condizioni di errore

Come accennato in precedenza il CAN prevede 3 differenti modalit`a operative dette Error-state in cui il nodo si pu`o trovare in funzione del numero di condizioni di errore che rileva e che genera.

Quando un nodo rileva una condizione di errore (Local Error ) genera un ERROR Frame con le caratteristiche precedentemente descritte. Per sua costruzione il frame `e tale da far rilevare un errore anche agli altri nodi della rete; l’ERROR Frame ha l’effetto di globalizzare l’errore16. Tutti i nodi della

Bus Idle S O F Arbitration Field Control

Field Data Field

CRC

sequ. Int.

Bus Idle DATA/REMOTE frame structure

A C K S lo t C R C F ie ld A c kn o w le d g e F ie ld E n d o f F ra m e 7

Form Error AREA

trasmettitore C R C d e l. A C K d e l.

Form Error AREA ricevitore

Figura 3.13: Sezioni del frame su cui il CAN verifica la presenza di Form-Error.

rete bollano il messaggio come “non valido”, lo scartano ed inizia una nuova nuova fase di arbitraggio (i nodi provano a ritrasmettere il loro messaggio).

Nelle specifiche del protocollo sono descritte 5 condizioni di errore di seguito descritte.

CRC Error : i 15 bit del Cyclic Redundancy Check vengono calcolati dal nodo trasmettitore e inviati nel CRC Field. Tutti i nodi della rete ricevono il messaggio, calcolano il CRC e verificano che coincida con quello contenuto nel CRC Field, se ci`o non si verifica viene prodotto un CRC Error. Vedi figura3.12.

Acknowledge Error : nell’Acknowledge Field del messaggio, il trasmetti- tore verifica se il bit di Acknowledge Slot (inviato come recessivo) `e dominante ed in caso affermativo significa che almeno un nodo della rete a ricevuto correttamente il messaggio altrimenti viene prodotto un

Ack Error.

Form Error : se un nodo rileva un bit dominante in uno dei seguenti 4 seg- menti: End of Frame, Acknowledge Delimiter, CRC Delimiter, signifi- ca che `e stata violata la struttura del messaggio e conseguentemente si rileva un errore di forma17 (Form Error ). Vedi figura 3.13.

Bit Error : si verifica un Bit Error se un nodo trasmettitore invia un bit do- minante e rileva un recessivo o viceversa durante la fase di monitoraggio della linea, confrontando quanto letto con il bit appena trasmesso. Nel caso in cui il nodo dopo aver inviato un recessivo legge un dominante

17Unica eccezione a questa regola si applica quando l’ultimo bit dell’End of Frame `e

dominante, questa situazione non viene rilevata come un errore ed al posto di un ERROR Frame il nodo genera un OVERLOAD Frame.

Capitolo 3. Informazioni preliminari 72 Bus Idle S O F Arbitration Field Control

Field Data Field

CRC Field

ACK

Field EOF Int.

Bus Idle DATA/REMOTE frame structure

Bit Monitoring Area

Figura 3.14: Sezioni del frame su cui il CAN verifica la presenza di Bit-Error.

durante l’Arbitration Field o l’Acknowledge Slot, non viene rilevato al- cun Bit Error perch´e quanto descritto `e caratteristico di una normale fase di arbitraggio e acknowledgement. I campi del frame sottoposti a questo controllo sono evidenziati in figura3.14.

Stuff Error : come verr`a successivamente descritto il protocollo impiega un metodo di trasmissione di tipo NRZ che richiede lo “stuffing” dei bit e per effetto del bit-stuffing non possono esistere pi`u di 5 bit con la solita “polarit`a” nella sequenza che arriva al ricevitore. Se tra lo Start of Fra-

me e il CRC Delimiter incluso, vengono trovati 6 bit consecutivi dello

stesso valore la regola di bit-stuffing viene violata e viene riconosciuto uno Stuff Error (vedi figura 3.17).

3.1.3.3 Fault confinement

La rilevazione di un errore “locale” e la sua conseguente globalizzazione non ha solo l’effetto di scartare il messaggio trasmesso e dare il via ad una nuova ritrasmissione ma anche quello di alterare il valore contenuto nei registri denominati REC (Receive Error Counter) e TEC (Transmit Error Counter) dei nodi appartenenti alla rete. E’ per mezzo di questi registri contatori che il protocollo CAN gestisce lo stato di Fault confinement dei nodi.

Questi contatori sono incrementati quando viene rilevato un errore e so- no decrementati quando il nodo esegue una trasmissione o una ricezione in modo corretto. Le Fault confinement rule specificate nel protocollo elencano dettagliatamente le condizioni ed i valori con cui TEC e REC devono essere incrementati e decrementati.

Attraverso TEC e REC il protocollo distingue i nodi che funzionano cor- rettamente (Error Active node) da quelli che presentano un malfunzionamen- ti temporanei (Error Passive node) e da quelli che invece sono non funzio- nanti (Bus Off node). In figura3.15 vengono rappresentate schematicamente le condizioni di passaggio da uno stato all’altro.

Error Active

Error Active Error Active

Reset and Configuration

REC< 127 TEC< 127 REC >=12 7 TEC> =127 TEC > 255

Reset, Configuration and Reception of 128x11

recessive bit

Figura 3.15: Regole di fault confinement dei nodi di una rete CAN.

Error Active Un nodo in questo stato pu`o prendere parte attivamente alla comunicazione sul bus, in particolar modo alla rilevazione di una con- dizione di errore genera un ERROR Frame con un campo Error Flag di tipo attivo costituito da 6 bit dominanti (Error Active Flag). In questo stato in cui il nodo si porta al reset l’interfaccia ha attive tutte le sue funzionalit`a senza alcuna restrizione. Un nodo CAN si trova in questa modalit`a quando i contatori TEC e REC sono entrambi inferiori a 128. Error Passive Un nodo diventa tale quando TEC o REC superano la soglia di 127 ed in questo stato alla rilevazione di un errore il nodo genera un ERROR Frame di tipo “passivo” caratterizzato dal fatto che l’Error

Flag `e composto da 6 bit recessivi (Error Passive Flag). Il frame ge-

nerato non ha alcun effetto a meno che il nodo non sia abilitato in trasmissione, solo in tal caso anche i 6 bit recessivi violano le regole di bit-stuffing e l’errore viene rilevato anche dalle altre stazioni della rete. Bus Off Quando entrambi i contatori sono superiori a 255 il nodo si scollega dal bus e v`a in Bus Off18. Ovviamente il nodo in queste condizioni non pu`o pi`u inviare o ricevere messaggi, dare l’acknowledge, trasmettere ERROR Frame e quant’altro. Questo stato pu`o essere abbandonato solo per effetto di un reset software o hardware; il reset software viene ottenuto dopo che il nodo riceve 128x11 bit recessivi.

Capitolo 3. Informazioni preliminari 74

Documenti correlati