Diagnostyka magistrali CAN w pojazdach.pdf

(479 KB) Pobierz
P O Z N A N UN I VE RS I T Y O F T E C HN O L O G Y ACA D E MI C J O URN A L S
No 79
Electrical Engineering
2014
Jarosław JAJCZYK*
Krzysztof MATWIEJCZYK*
DIAGNOSTYKA MAGISTRALI CAN W POJAZDACH
Artykuł zawiera informacje na temat magistrali CAN jako sieci transmisji danych
stosowanej w przemyśle motoryzacyjnym do komunikacji pomiędzy poszczególnymi
układami sterowania. Przybliżono budowę tego systemu oraz omówiono sposoby
przesyłania komunikatów. Zaprezentowano metody umożliwiające wykrycie usterek przy
fizycznym uszkodzeniu magistrali CAN.
SŁOWA KLUCZOWE: magistrala danych, diagnostyka, elektronika pojazdowa
1. WSTĘP
Szybki rozwój elektroniki na świecie spowodował, że jest ona również
obiektem zainteresowań inżynierów pracujących w koncernach motoryzacyjnych.
Jej zastosowanie pozwala na wyposażenie pojazdów w skomplikowane systemy,
które zwiększają komfort i bezpieczeństwo jazdy. Na szczególną uwagę zasługują
informatyczne sieci komunikacji, które w krótkim czasie stały się podstawowym
systemem wymiany danych w pojazdach. Dzięki nim ograniczona została masa
własna pojazdów oraz poprzez zastosowanie cyfrowego sygnału poprawiona
została jakość transmisji. Najpopularniejszą siecią stosowaną powszechnie przez
producentów pojazdów jest magistrala CAN (ang. Controller Area Network). Po
raz pierwszy została ona zastosowana przez koncern Mercedesa w 1992 roku a już
na początku dwudziestego pierwszego wieku była podstawowym systemem
każdego samochodu [1]. Aby ujednolicić to rozwiązanie, powołana została
organizacja CAN in Automation, która opracowała standardy związane z
magistralą CAN. Wprowadziła ona obowiązującą normę europejską ISO 11898,
która odpowiada amerykańskiej normie SAE J1939 i opisuje warstwę fizyczną
systemu CAN oraz warstwę aplikacji [4, 5, 10].
Magistrala CAN jest odpowiedzią na zwiększającą się liczbę czujników,
sterowników oraz elementów wykonawczych w pojazdach. Mnogość systemów w
jakie zostały wyposażone samochody utrudnia przejrzystą wymianę danych, stąd
też podzespoły grupuje się np. w systemy oświetlenia, nadwozia, napędu itd. W
pojazdach znajduje się więcej niż jedna magistrala CAN, a dane są często
__________________________________________
* Politechnika Poznańska.
32
Jarosław Jajczyk, Krzysztof Matwiejczyk
przesyłane pomiędzy poszczególnymi systemami. Oprócz międzywęzłowej
wymiany danych tego typu sieć pozwala na sprawną diagnostykę usterek.
Elektroniczne sterowniki poszczególnych systemów monitorują swoją pracę a
każda niezgodność zapisywana jest w pamięci w postaci kodu symbolizującego
określoną usterkę. Poprzez podłączenie interfejsu diagnostycznego przez złącze
OBD kody te są odczytywane a następnie dekodowane [3, 4].
2. BUDOWA MAGISTRALI CAN
Magistrala CAN pozwala łączyć między sobą urządzenia poprzez trzy
topologie: linearną, pierścieniową oraz gwieździstą. Ze względów technicznych
powszechnie stosowana jest struktura liniowa, która mimo uszkodzeń
poszczególnych węzłów zapewnia ciągłą wymianę danych.
Warstwa fizyczna magistrali CAN składa się z dwuprzewodowej skrętki
łączącej wszystkie nadajniki i odbiorniki. Na obu końcach skrętki montowane są
rezystory zwane termistorami, których zadaniem jest zapobieganie zjawisku
odbicia się fali elektromagnetycznej. Dane przesyłane są w postaci sygnału
różnicowego [9, 10]. Zasadę jego tworzenia przestawiono na rysunku 1.
Rys. 1. Transmisja sygnału w skrętce CAN
Skrętka magistrali składa się z dwóch przewodów oznaczanych jako CAN_L (niska
magistrala CAN) oraz CAN_H (wysoka magistrala CAN). Kiedy występuje bit
recesywny w obu przypadkach jest taka sama wartość napięcia, która wynosi 2,5 V.
Stan dominujący odzwierciedlają następujące potencjały: dla CAN_L – 1,5 V, zaś dla
CAN_H – 3,5 V. W stanie dominującym różnica napięć jest na poziomie ok. 2 V
(rys. 1). Ewentualne zakłócenia działające na skrętkę znoszą się, przez co zachowana
zostaje wysoka jakość transmisji danych.
Długość przewodów magistrali ma znaczenie i wpływa na jakość transmisji.
Maksymalna długość magistrali
l
max
na etapie projektowania wyznaczana jest za
pomocą zależności (1) [4].
C
l
max
�½
Cu
(1)
V
t
gdzie:
V
t
– szybkość transmisji,
C
Cu
– prędkość rozchodzenia się sygnału w miedzi
(C
Cu
= 210
8
m/s).
Diagnostyka magistrali CAN w pojazdach
33
Zgodnie z normą ISO 11898 zaleca się, aby długość magistrali nie przekraczała
40 m (ma to sens ze względu na budowę i rozmiary pojazdów) [6, 7, 8].
Warstwa łącza danych odpowiada za nadawanie adresu urządzeniom, który
pozwala odbierać komunikaty wysyłane w postaci ramek danych (rys. 2).
Rys. 2. Struktura ramki standardu CAN [1]
Komunikat składa się z [2, 5, 10]:
-
pola/bitu startowego (SOF) – rozpoczyna nadawaną ramkę; jego wartość jest
zawsze dominująca,
-
pola statusu (identyfikator wiadomości) – określa priorytet komunikatu i w
zależności od przyjętego standardu CAN może składać się z 11 bitów
(CAN2.0A) lub 29 bitów (CAN2.0B),
-
pola sterującego – informuje o standardzie CAN, jaki został przyjęty oraz
zawiera informację o długości kolejnego pola ramki (pola danych),
-
pola danych – maksymalnie 8 bajtów w których zawiera się główna informacja
przesyłana w komunikacie,
-
pola zabezpieczenia – odpowiada za wykrywanie zakłóceń transmisji na
podstawie sumy kontrolnej CRC, która jest tworzona przez nadajnik i
zapisywana w tym miejscu; przy odbiorze ramki odbiornik tworzy drugą taką
sumę i porównuje jej wartość z tą zawartą w polu zabezpieczenia,
-
pola potwierdzenia (ACK) – dwubitowe pole zawierające informację zwrotną
nadaną przez odbiornik o potwierdzeniu odebranej ramki,
-
pola końcowego (EOF) – siedem bitów o wartości recesywnej, które kończy
ramkę danych.
Każdy komunikat zawiera również 3-4 bity separujące, które oddzielają między
sobą poszczególne ramki. W poprawnie nadawanej ramce nie powinno być sześciu
kolejnych bitów o tej samej wartości logicznej. Gdy sterownik wyśle ciąg równych
bitów, tranceiver dopisuje dodatkowy bit po pięciu tych samych wartościach.
Odbiornik pomija ten bit przy dekodowaniu komunikatu. Ciąg tego typu bitów
nazywa się bitami odstępowymi [3, 10]. Rysunek 3 przedstawia część ramki z
podziałem na bity. Obszary zacieniowane to bity dopisane.
34
Jarosław Jajczyk, Krzysztof Matwiejczyk
Rys. 3. Ciąg bitów z wyszczególnionymi bitami odstępowymi
Ostatnią warstwą standardu CAN jest warstwa aplikacji, która nie została
określona w żadnych dokumentach prawnych. Przez to, że nie narzucono na tę
część żadnych ograniczeń, koncerny samochodowe zbudowały własne protokoły,
które ze względów polityki prywatności są utajone. Przykładem tego typu danych
są m.in. protokoły sterujące modułami we współczesnych pojazdach.
3. KOMUNIKACJA W MAGISTRALI CAN
Urządzenia sterujące i wykonawcze nie mogą być bezpośrednio wpięte do
magistrali CAN, ponieważ nie są przystosowane do odbierania i nadawania
danych. Aby zapewniona była wymiana informacji, każde z nich musi być
wyposażone w dodatkowe układy elektroniczne. W jego skład wchodzi:
mikrokontroler, procesor CAN oraz tranceiver.
Mikrokontroler odbiera sygnał i przekazuje go w postaci danych do kontrolera
CAN. Tworzona jest typowa ramka CAN zawierająca dane. Jej wysyłanie jest
realizowane za pomocą tranceivera, który stanowi układ nadający lub odbierający
komunikaty. Układy odbierające pozostałych sterowników pobierają dane z
magistrali, które przekazują do kontrolerów CAN, gdzie na podstawie
identyfikatora odbywa się weryfikacja, czy dany komunikat adresowany był do
danego węzła. Jeżeli wiadomość zostanie przyjęta jest ona dalej przetwarzana.
Podmieniany jest bit pola potwierdzenia z wartości dominującej na recesywną i
odsyłany z powrotem jako rodzaj raportu doręczenia komunikatu dla nadawcy. W
pozostałych przypadkach, gdy identyfikator nie zostanie zaakceptowany, odbiór
danych jest przerywany [2, 5, 6].
Podstawową metodą dostępu do magistrali jest metoda CSMA/CA –
wielostacyjny dostęp do informacji. Urządzenie nadaje informację tak długo,
dopóki zapis jej jest zgodny z sekwencją bitów obecnych w magistrali. Jeżeli
wysłany zostanie bit recesywny, natomiast sygnał główny będzie miał w tym
Diagnostyka magistrali CAN w pojazdach
35
momencie wartość równą logicznemu zeru (bit dominujący), dany węzeł przerywa
nadawanie i przechodzi w stan odbioru informacji.
Odpowiedzialny za poprawne funkcjonowanie transmisji jest proces arbitrażu,
w którym na podstawie identyfikatora ramek nadawany jest priorytet komunikatu.
Korzysta się w nim z tzw. metody operacji logicznej „Wired-And”, która polega na
nadpisywaniu bitów recesywnych przez bity dominujące. Przebieg arbitrażu
gwarantuje, że żaden bit nie jest tracony, a przy tym nie wydłuża się czas
nadawania komunikatu [4, 10].
Magistrala CAN jest siecią informatyczną o wysokiej niezawodności. Aby
jednak móc na bieżąco kontrolować połączenia oraz wymianę danych, stosuje się
systemy wykrywania i korekcji błędów. Informacja o błędzie jest przesyłana
najpóźniej pod koniec komunikatu, aby układ nadający mógł powtórzyć wysłanie
ramki danych. Wśród metod detekcji błędów wyróżniono [1, 4, 9, 10]:
-
kontrola nadmiarowa CRC – wykrywanie błędu poprzez porównanie sumy
kontrolnej na końcu transmisji w układzie odbierającym komunikat z jej
wartością początkową w układzie nadawczym,
-
sprawdzanie formatu ramki – sprawdzenie poszczególnych pól komunikatu, czy
na pewno ich wartości logiczne są zgodne z tymi określonymi w protokole
CAN; kontroli podlega struktura komunikatu,
-
błąd potwierdzenia – brak komunikatu zwrotnego z układu odbiorczego, który
informuje nadawcę o poprawnym przebiegu transmisji,
-
błąd synchronizacji danych - monitorowanie poprawności kodu ramki zgodnie z
regułą, że maksymalnie pięć kolejnych bitów może mieć tę samą wartość
logiczną.
Po wykryciu błędu kontroler CAN przerywa wysyłanie ramki danych.
Nadawana jest wtedy tzw. ramka błędu. Jest to sześć kolejnych bitów
dominujących (active error flag) lub recesywnych (passive error flag). Sytuacja ta
pokazana została na rysunku 4, gdzie od chwili 0,83 ms przerwana została
transmisja i nadano ramkę błędu.
Rys. 4. Przebieg sygnałów w magistrali CAN podczas nadania ramki błędu
Zgłoś jeśli naruszono regulamin