Informacje ogólne
Procedura komunikacji CAN
B - Czujnik 1
CAN - Magistrala komunikacyjna
M - Elementy wykonawcze I - III (serwomechanizmy)
N - Jednostki sterujące / sterowniki I - V
Nowoczesne pojazdy wykorzystują kilka magistral CAN (Controller Area Network) pomiędzy modułami/jednostkami sterującymi różnych układów oraz sterownikami siłowników pojazdu (patrz ilustracja powyżej).
Autobus jest w trybie pełnego dupleksu (lub po prostu dupleks), tj. każde podłączone do niego urządzenie może jednocześnie odbierać i przesyłać wiadomości.
Sygnał z wrażliwego elementu odpowiedniej informacji (czujnik) wchodzi do najbliższej jednostki sterującej, która przetwarza go i przekazuje do magistrali danych CAN.
Dowolna jednostka sterująca podłączona do magistrali danych CAN·może odczytać ten sygnał, obliczyć na jego podstawie parametry sterowania i sterować siłownikiem serwo.
Zalety
Przy zwykłym połączeniu kablowym urządzeń elektrycznych i elektronicznych, każda jednostka sterująca jest bezpośrednio połączona ze wszystkimi czujnikami i elementami wykonawczymi, z których otrzymuje pomiary lub którymi steruje.
Komplikacja systemu sterowania prowadzi do nadmiernej długości lub wielu linii kablowych.
W porównaniu ze standardowym okablowaniem magistrala danych zapewnia:
- Zmniejszenie liczby kabli. Przewody z czujników są ciągnięte tylko do najbliższej jednostki sterującej, która przetwarza zmierzone wartości na pakiet danych i przesyła je do magistrali CAN;
- Siłownikiem może sterować dowolna jednostka sterująca, która odbiera odpowiedni pakiet danych przez magistralę CAN i na tej podstawie oblicza wartość działania sterującego na serwomechanizm;
- Poprawa kompatybilności elektromagnetycznej;
- Zmniejszenie liczby połączeń wtykowych i zmniejszenie liczby wyjść stykowych na jednostkach sterujących;
- Utrata masy ciała;
- Zmniejszenie liczby czujników, ponieważ sygnały z jednego czujnika (np. z czujnika temperatury płynu chłodzącego) może być używany przez różne systemy;
- Poprawa możliwości diagnostycznych. Ponieważ sygnały z jednego czujnika (np. sygnał prędkości) są używane przez różne systemy, to jeśli wszystkie systemy używające tego sygnału wygenerują komunikat o błędzie, oznacza to, że czujnik lub jednostka sterująca, która przetwarza te sygnały, jest zazwyczaj uszkodzona. Jeśli komunikat o błędzie pochodzi tylko z jednego systemu, chociaż ten sygnał jest używany przez inne systemy, wówczas przyczyną nieprawidłowego działania jest najczęściej jednostka sterująca przetwarzaniem lub serwomechanizm;
- Wysoka prędkość transmisji danych – możliwa do 1 Mb/s przy maksymalnej długości linii 40 m.
- Kilka komunikatów może być przesyłanych po kolei na tej samej linii.
Magistrala danych CAN składa się z dwużyłowego przewodu wykonanego w postaci skrętki. Wszystkie urządzenia podłączone do tej linii (jednostki sterujące urządzeniami).
Transfer danych odbywa się z duplikacją na obu przewodach, a poziomy logiczne magistrali danych są odzwierciedlone (to znaczy, jeśli logiczny poziom zerowy jest przesyłany jednym przewodem (0), następnie na drugim przewodzie - poziom jednostki logicznej (1), i wzajemnie).
Dwuprzewodowy schemat transmisji jest używany z dwóch powodów: do kontroli błędów i jako podstawa niezawodności.
Jeśli szczyt napięcia występuje tylko na jednym przewodzie, na przykład z powodu problemów z kompatybilnością elektromagnetyczną (kompatybilność elektromagnetyczna), wówczas odbiorniki mogą zidentyfikować to jako błąd i zignorować wartość szczytową.
W przypadku zwarcia lub przerwy w jednym z dwóch przewodów magistrali CAN, dzięki zintegrowanemu programowo-sprzętowemu systemowi niezawodności, następuje przełączenie do trybu pracy jednoprzewodowej. Uszkodzona linia transmisyjna nie jest już używana.
Kolejność i format przesyłane i odbierane przez użytkowników (abonenci) komunikaty są zdefiniowane w protokole komunikacyjnym.
Istotną cechą wyróżniającą magistralę danych CAN w porównaniu z innymi systemami magistralowymi opartymi na zasadzie adresowania abonenckiego jest adresowanie związane z wiadomościami.
Oznacza to, że każda wiadomość przesyłana na magistrali ma przypisany swój stały adres (identyfikator), zaznaczając treść tej wiadomości (np.: temperatura płynu chłodzącego). Protokół magistrali danych CAN umożliwia przesyłanie do 2048 różnych komunikatów, przy czym adresy od 2033 do 2048 są przypisane na stałe.
Ilość danych w jednej wiadomości na magistrali CAN wynosi 8 bajtów.
Blok odbiorcy przetwarza tylko te komunikaty (pakiety danych), które są przechowywane na jego własnej liście identyfikacyjnej (kontrola akceptacji).
Pakiety danych mogą być przesyłane tylko wtedy, gdy magistrala wymiany CAN jest wolna (tzn. jeśli po ostatnim pakiecie danych nastąpił odstęp 3 bitów i żadna jednostka sterująca nie zacznie wysyłać komunikatu). W takim przypadku poziom logiczny szyny danych musi być recesywny (logiczny «1»).
Jeżeli kilka jednostek sterujących rozpocznie nadawanie komunikatów w tym samym czasie, wówczas obowiązuje zasada pierwszeństwa, zgodnie z którą komunikat o najwyższym priorytecie zostanie przesłany jako pierwszy bez utraty czasu lub bitów (arbitraż żądań dostępu do wspólnej szyny danych).
Każda jednostka sterująca, która utraci prawo do arbitrażu, automatycznie przełączy się na odbiór i ponowną próbę wysłania swojej wiadomości, gdy tylko magistrala danych zostanie ponownie zwolniona.
Oprócz pakietów danych wykorzystywane są również pakiety żądania określonego komunikatu na szynie danych CAN, na które odpowiada jednostka sterująca, która może dostarczyć żądaną informację.
Format pakietu danych
W normalnym trybie transmisji pakiety danych mają następujące konfiguracje bloków (personel):
- Data Frame (ramka wiadomości) do przesyłania komunikatów na magistrali danych CAN (np.: temperatura płynu chłodzącego);
- Remote Frame (ramka żądania) żądanie komunikatów na magistrali danych CAN z innej jednostki sterującej;
- Error Frame (ramka błędu), wszystkie podłączone jednostki sterujące są powiadamiane o wystąpieniu błędu, a ostatni komunikat na magistrali danych CAN jest nieważny.
Protokół magistrali danych CAN obsługuje dwa różne formaty ramek danych magistrali danych CAN, które różnią się jedynie długością identyfikatora:
- standardowy format;
- Format rozszerzony.
Obecnie w systemach wymiany danych systemów sterowania pojazdami stosowany jest tylko standardowy format.
Format ramki
Każda ramka komunikatów przesyłanych magistralą CAN składa się z siedmiu kolejnych pól (patrz ilustracja powyżej):
- Start of Frame (początek bitu): Zaznacza początek wiadomości i synchronizuje wszystkie moduły;
- Arbitration Field (identyfikator i żądanie): To pole składa się z identyfikatora (adresy) 11 bitów i 1 bit kontrolny (Remote Transmission Request-Bit). Ten bit kontrolny oznacza ramkę jako ramkę danych (ramka danych) lub jako zdalna ramka (zdalna ramka żądania) bez bajtów danych;
- Control Field (bity kontrolne): Pole kontrolne (6 bitów) zawiera bit IDE (Identifier Extension Bit) rozpoznawanie formatu standardowego i rozszerzonego, bit zapasowy dla kolejnych rozszerzeń oraz - w ostatnich 4 bitach - ilość bajtów danych osadzonych w Polu Danych (pole danych);
- Data Field (dane): Pole danych może zawierać od 0 do 8 bajtów danych; komunikat na magistrali danych CAN o długości 0 bajtów służy do synchronizacji procesów rozproszonych;
- CRC Field (pole kontrolne): Pole CRC (Cyclic-Redundancy-Check Field) zawiera 16 bitów i służy do kontrolnego rozpoznawania błędów podczas transmisji;
- ACK Field (potwierdzenie odbioru): pole ACK (Acknowledgement Field) zawiera sygnał potwierdzenia dla wszystkich odbiorników, które bezbłędnie odebrały komunikat przez magistralę CAN;
- End of Frame (koniec kadru): oznacza koniec pakietu danych;
- Intermission (interwał): Interwał między dwoma pakietami danych. Interwał musi wynosić co najmniej 3 bity. Następnie dowolna jednostka sterująca może przesłać następny pakiet danych;
- IDLE (tryb odpoczynku): Jeśli żadna jednostka sterująca nie wysyła komunikatów, magistrala CAN pozostaje bezczynna do czasu wysłania następnego pakietu danych.
Priorytety
Aby przetwarzać dane w czasie rzeczywistym, musi istnieć możliwość ich szybkiego przesyłania.
Wymaga to nie tylko łącza o dużej fizycznej szybkości transmisji danych, ale także szybkiego udostępnienia wspólnej magistrali CAN, jeśli kilka jednostek sterujących musi wysyłać komunikaty w tym samym czasie.
W celu rozróżnienia komunikatów przesyłanych przez magistralę danych CAN w zależności od stopnia pilności, dla poszczególnych komunikatów są przewidziane różne priorytety.
Na przykład czas zapłonu ma najwyższy priorytet, wartości poślizgu mają średni, a temperatura zewnętrzna ma najniższy priorytet.
Priorytet, z jakim przekazywana jest wiadomość na szynie CAN, określa identyfikator (adres) odpowiedni komunikat.
Identyfikator odpowiadający mniejszej liczbie binarnej ma wyższy priorytet i odwrotnie.
Protokół magistrali danych CAN jest oparty na dwóch stanach logicznych: Bity są albo «recesywny» (logiczny «1»), Lub «dominujący» (logiczny «0»). Jeśli dominujący bit jest transmitowany przez co najmniej jeden moduł, to bity recesywne transmitowane przez inne moduły są nadpisywane.
Przykład
Jeśli kilka jednostek sterujących rozpocznie transmisję danych w tym samym czasie, konflikt dostępu do wspólnej szyny danych zostanie rozwiązany przez «bitowy arbitraż żądań udostępnionych zasobów» z odpowiednimi identyfikatorami.
Podczas transmisji pola identyfikatora nadajnik sprawdza po każdym bicie, czy ma jeszcze prawo do transmisji, czy też inna jednostka sterująca nie przesyła już na magistrali komunikatu o wyższym priorytecie.
Jednostki sterujące
Pierwsza jednostka sterująca (N I) traci arbitraż od trzeciego bitu.
Trzecia jednostka sterująca (N III) traci arbitraż od 7. bitu.
Druga jednostka sterująca (N II) zachowuje prawo dostępu do magistrali danych CAN i może przesyłać swój komunikat.
Jeżeli bit recesywny nadawany przez pierwszą jednostkę nadawczą zostanie nadpisany bitem dominującym innej jednostki nadawczej, wówczas pierwsza jednostka nadawcza traci prawo do nadawania (arbitraż) i staje się blokiem odbiorczym (patrz ilustracja powyżej).
Inne jednostki sterujące będą próbowały przesyłać swoje komunikaty przez magistralę danych CAN dopiero wtedy, gdy będzie ona ponownie wolna. W takim przypadku prawo do transmisji zostanie ponownie nadane zgodnie z priorytetem komunikatu na magistrali danych CAN.
Rozpoznawanie błędów
Zakłócenia mogą prowadzić do błędów w transmisji danych. Takie błędy transmisji powinny być rozpoznawane i korygowane. Protokół magistrali danych CAN rozróżnia dwa poziomy rozpoznawania błędów:
- Mechanizmy na poziomie Data Frame (ramka danych);
- Mechanizmy poziomu bitowego.
Mechanizmy na poziomie Data Frame
Cyclic-Redundancy-Check
Na podstawie komunikatu przesłanego magistralą CAN nadajnik oblicza bity kontrolne, które są przesyłane wraz z pakietem danych w terenie «CRC Field» (sumy kontrolne). Jednostka odbiorcza przelicza te bity kontrolne na podstawie komunikatu odebranego na szynie danych CAN i porównuje je z bitami kontrolnymi odebranymi z tym komunikatem.
Frame Check
Mechanizm ten sprawdza strukturę przesyłanego bloku (rama), to znaczy pola bitowe o zadanym ustalonym formacie i długości ramki są ponownie sprawdzane.
Błędy wykryte przez sprawdzanie ramek są oznaczane jako błędy formatu.
Mechanizmy poziomu bitowego
Monitorowanie
Każdy moduł podczas przesyłania komunikatu monitoruje poziom logiczny magistrali danych CAN i określa różnice między przesyłanymi i odbieranymi bitami. Zapewnia to niezawodne rozpoznawanie globalnych i lokalnych błędów bitowych występujących w jednostce nadajnika.
Bit Stuffing
W każdej ramce danych między polami «Start of Frame» i koniec pola «CRC Field» nie powinno być więcej niż 5 kolejnych bitów o tej samej polaryzacji.
Po każdej sekwencji 5 identycznych bitów nadajnik blokowy dodaje do strumienia bitów jeden bit o przeciwnej polaryzacji.
Jednostki odbiorcze usuwają te bity po odebraniu komunikatu na szynie danych CAN.
Rozwiązywanie problemów
Jeśli jakikolwiek moduł magistrali danych CAN wykryje błąd, przerywa bieżący proces przesyłania danych, wysyłając komunikat o błędzie. Komunikat o błędzie składa się z 6 dominujących bitów.
Dzięki komunikatowi o błędzie wszystkie jednostki sterujące podłączone do magistrali danych CAN są powiadamiane o wystąpieniu lokalnego błędu i odpowiednio ignorują wcześniej przesłany komunikat.
Po krótkiej przerwie wszystkie jednostki sterujące będą ponownie mogły wysyłać komunikaty przez magistralę danych CAN, przy czym komunikat o najwyższym priorytecie będzie ponownie wysyłany jako pierwszy.
Jednostka sterująca, której komunikat na magistrali danych CAN spowodował błąd, również rozpoczyna retransmisję swojego komunikatu (funkcja automatycznego żądania powtórzenia).
Typy magistrali CAN
W różnych obszarach sterowania stosowane są różne magistrale CAN. Różnią się między sobą szybkością przesyłania danych.
Obszar szybkości transmisji CAN «silnik i układ jezdny» (CAN-C) wynosi 125 Kb/s, a magistrala danych CAN «Salon» (CAN-B) ze względu na mniejszą liczbę szczególnie pilnych wiadomości jest przeznaczony do przesyłania danych z szybkością zaledwie 83 Kb/s.
Wymiana danych pomiędzy dwoma systemami magistrali odbywa się za pośrednictwem tzw «bramy», tj. jednostki sterujące podłączone do obu magistral danych.
Światłowód D2B (Digital Daten-Bus) dane zastosowane do obszaru «Audio/Komunikacja/Nawigacja». Kabel światłowodowy może przesyłać znacznie większą ilość informacji niż magistrala z kablem miedzianym.
Magistrala CAN C «Silnik i podwozie»
Tak zwany terminator magistrali danych o rezystancji 120 Ω jest instalowany po każdej stronie terminalowej jednostki sterującej i jest podłączany między obydwoma przewodami magistrali danych.
Magistrala danych CAN w komorze silnika jest aktywna tylko przy włączonym zapłonie.
Do magistrali CAN-C można podłączyć więcej niż 7 jednostek sterujących.
Magistrala CAN-B «Salon»
Niektóre jednostki sterujące podłączone do magistrali danych CAN przedziału pasażerskiego są aktywowane niezależnie od włączenia zapłonu (np. system pojedynczego zamka).
W związku z tym magistrala danych CAN w przedziale pasażerskim musi działać nawet przy wyłączonym zapłonie, co oznacza, że musi być zapewniona możliwość przesyłania pakietów danych również przy wyłączonym zapłonie.
W celu maksymalnego ograniczenia poboru prądu spoczynkowego magistrala danych CAN w przypadku braku danych niezbędnych do transmisji przechodzi w pasywny tryb czuwania i jest ponownie aktywowana dopiero przy kolejnym dostępie.
Jeśli w pasywnym trybie czuwania szyny danych CAN przedziału pasażerskiego, dowolna jednostka sterująca (np. pojedynczy moduł sterujący zamkiem) przesyła przez nią wiadomość, to odbiera ją tylko główny moduł systemu (elektroniczny wyłącznik zapłonu, EZS/EIS). Moduł EZS zapisuje tę wiadomość w pamięci i wysyła sygnał aktywacji (Wake-up) do wszystkich jednostek sterujących podłączonych do magistrali CAN-B.
Po aktywacji EZS sprawdza wszystkich użytkowników magistrali danych CAN, a następnie przesyła wcześniej zapisany komunikat.
Do magistrali CAN-B można podłączyć ponad 20 jednostek sterujących.