Sw3.6-m10-1.2-Slajd16

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

CAN (ang. Controller Area Network)

CAN (ang. Controller Area Network)


Ważnym zadaniem warstwy łącza danych jest obsługa błędów. Gdy którykolwiek z węzłów wykryje błąd generowana jest specjalna ramka błędu, zawierająca flagę błędu (6 bitów dominujących). Bity dominujące flagi błędu powodują nadpisanie uszkodzonej ramki i wymuszają powtórzenie transmisji. Każdy z węzłów przeprowadza kontrolę bitów.

Błąd stanu bitu występuje, jeśli nadajnik wyśle bit dominujący a odbierze recesywny albo wyśle recesywny a odbierze dominujący. Wyjątkiem od tej zasady jest sekwencja arbitrażu.

Błąd szpikowania zachodzi wtedy, gdy w ciągu bitów między SOF a ogranicznikiem CRC pojawi się więcej niż 5 takich samych bitów - odbiornik stwierdza naruszenie zasady szpikowania.

Odbiornik na podstawie ciągu CRC sprawdza czy w ramce nie nastąpiło przekłamanie. Mimo znacznej odległości Hamminga równej 6, kod wykorzystywany jest wyłącznie do wykrywania błędów a nie do korekcji.

Odbiornik, który poprawnie odbierze dane ustawia bit ACK jako dominujący. W ten sposób nadajnik uzyskuje potwierdzenie poprawnej transmisji; w przeciwnym wypadku nadajnik wysyła ramkę błędu.

W ramce występują bity, które mają znane wartości. Zmiana tych bitów oznacza błąd formatu ramki.

W celu odróżnienia błędów chwilowych od trwałych kontrolery CAN wyposażone są w dwa liczniki: licznik błędów odbioru (REC - Receive Error Counter) oraz licznik błędów nadawania (TEC - Transmit Error Counter). Liczniki zwiększają swoją zawartość przy błędzie odpowiedniej operacji i zmniejszają ją przy poprawnej operacji. W zależności od stanu licznika może zmieniać się stan węzła. Węzły mogą znajdować się w trzech stanach – stan czynny, stan bierny, stan odcięcia. Stan czynny (REC=TEC<128) jest normalnym stanem węzłów - są w pełni aktywne. Gdy sieć działa bez zakłóceń REC=TEC=0. W stanie pasywnym (127<REC?TEC<255) węzły nadal nadają i odbierają wiadomości. Różnica polega na tym, że w przypadku błędu, węzeł czynny wysyła czynną ramkę błędu (z czynną flagą błędu - 6 bitów dominujących) a węzeł bierny wysyła bierną ramkę błędu (z bierną flagą błędu - 6 bitów recesywnych). Przekroczenie zawartości REC?TEC>255 powoduje przejście węzła do stanu odcięcia.


<< Poprzedni slajd | Spis treści | Następny slajd >>