Informacje ogólne
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.
Procedura komunikacji CAN
B - Czujnik 1; CAN - Magistrala danych; M - Elementy wykonawcze I-III (serwomechanizmy); N - Jednostki sterujące/kontrolery IV
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 działania sterującego i sterować działaniem odpowiedniego elementu wykonawczego.
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 ten ostatni 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;
- 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 Mbit/s przy maksymalnej długości linii 40 m. Obecnie pojazdy marki Mercedes-Benz mają prędkość przesyłu danych od 83 Kbit/s do 500 Kbit/s;
- 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), odbiorniki mogą zidentyfikować to jako błąd i zignorować ten skok.
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.
Jednostka odbiorcza przetwarza tylko te wiadomości, które są przechowywane na jej 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 nastąpił odstęp 3 bitów i żadna z jednostek sterujących nie rozpocznie transmisji następnego 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 podczas wymiany informacji wykorzystywane są również pakiety zapytań o określone komunikaty na szynie danych CAN - jednostka sterująca, która jest w stanie dostarczyć żądane informacje, odpowiada na takie żądanie.
Format przesyłania danych
W normalnym trybie przesyłania używane są pakiety o następujących konfiguracjach:
- 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 i ostatni komunikat na magistrali danych CAN jest nieważny.
Protokół magistrali danych CAN obsługuje dwa różne formaty ramek danych, które różnią się jedynie długością identyfikatora: standardowy i rozszerzony.
Obecnie systemy komunikacji systemu sterowania pojazdem Daimler Chrysler używają tylko standardowego formatu.
Format ramki
Każda ramka komunikatów przesyłanych magistralą CAN składa się z siedmiu następujących po sobie pól:
- Start of Frame (początek bitu): Zaznacza początek wiadomości i synchronizuje wszystkie moduły;
- Arbitration Field (dziedzinie arbitrażu): To pole składa się z 11-bitowego identyfikatora (adresy) in i jeden bit kontrolny (Remote Transmission Request-Bit), oznaczając ramkę jako ramkę danych (ramka danych) lub jako zdalna ramka (zdalna ramka żądania);
- Control Field (bity kontrolne): 6-bitowe pole sterujące zawiera bit definiujący IDE (Identifier Extension Bit), używany do rozpoznawania typu używanego formatu (standardowe lub rozszerzone), bit zarezerwowany dla kolejnych rozszerzeń oraz - w ostatnich 4 bitach - informacja o liczbie bajtów danych osadzonych w Polu Danych (patrz poniżej);
- Data Field (dane): Pole danych może zawierać od 0 do 8 bajtów danych, - transmisja komunikatów na szynie 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 ramki;
- Intermission (interwał): Interwał między dwiema sąsiednimi ramkami danych. Długość interwału musi wynosić co najmniej 3 bity, po których dowolna z jednostek sterujących może rozpocząć transmisję kolejnego pakietu;
- IDLE (tryb odpoczynku): Jeśli żadna jednostka sterująca nie przesyła komunikatów, magistrala CAN pozostaje w trybie bezczynności (oczekiwania) do początku następnego pakietu.
Priorytety
Aby przetwarzać dane w czasie rzeczywistym, musi istnieć możliwość ich szybkiego przesyłania.
Wymaga to nie tylko fizycznego łącza o dużej szybkości transmisji danych, ale także szybkiego dostępu do wspólnej magistrali CAN, jeśli wiele 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 są średnie, a temperatura powietrza na zewnątrz jest najniższa.
Priorytet, z jakim przekazywana jest wiadomość na szynie CAN, określa identyfikator (pole adresu) 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
Przykład arbitrażu
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ś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.
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.
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 obu stronach 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 nawet przy wyłączonym zapłonie.
Aby maksymalnie ograniczyć pobór 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.