Wsiadłeś do samochodu, nacisnąłeś przycisk start i silnik ożył w mgnieniu oka, ale jak twój samochód zdecydował, czy ma się uruchomić, czy nie?

Otóż, aby samochód odpalił, kilka anten i elektronicznych jednostek sterujących komunikowało się z pilotem. Protokół Controller Area Network (CAN) zapewnia komunikację między brelokiem, antenami i ECU w samochodzie.

Czym więc jest protokół CAN i jak pomaga we współpracy urządzeń w systemach pojazdu? Cóż, dowiedzmy się.

Co to jest protokół CAN i dlaczego jest potrzebny?

W tamtych czasach samochody nie miały dużo elektroniki. W rzeczywistości, jeśli chciałeś uruchomić swój pojazd na początku XX wieku, musiałeś wysiąść z pojazdu i ręcznie uruchomić silnik.

Wręcz przeciwnie, dzisiejsze samochody mają kilka czujników elektronicznych, a urządzenia elektroniczne monitorują wszystko, od temperatury w kabinie po obroty wału korbowego.

To powiedziawszy, dane otrzymane z tych czujników nie mają żadnej wartości, dopóki nie zostaną przetworzone. Przetwarzanie danych odbywa się za pomocą urządzeń obliczeniowych znanych jako elektroniczne jednostki sterujące (ECU).

instagram viewer

Kredyty obrazkowe: SenseiAlan/Flickr

W przeciwieństwie do komputera z jednym procesorem, samochód ma kilka ECU, z których każdy odpowiada za wykonanie określonego zadania. Chociaż te ECU mogą wydajnie wykonywać pojedyncze zadanie, muszą współpracować, aby zapewnić funkcje takie jak ABS oraz WYJŚCIE działają prawidłowo.

Z tego powodu wszystkie ECU w samochodzie muszą być podłączone. Do wykonania tych połączeń można użyć topologii punkt-punkt, w której każdy ECU jest połączony bezpośrednio z każdym innym ECU. Taka architektura spowodowałaby jednak złożoność systemu. W rzeczywistości nowoczesny pojazd ma ponad 70 ECU, a połączenie ich w sposób jeden do jednego zwiększyłoby wykładniczo masę okablowania.

Aby rozwiązać ten problem, Bosch wraz z Mercedes-Benz i Intelem stworzył w 1986 r. protokół Controller Area Network. Protokół ten umożliwił ECU komunikowanie się ze sobą za pomocą wspólnej magistrali danych znanej jako magistrala CAN.

Jak to działa?

Protokół CAN to metodologia komunikacji oparta na wiadomościach, która opiera się na zestawie skrętek do transmisji danych. Te przewody są znane jako CAN wysoki i CAN niski.

Aby umożliwić transmisję danych na tych przewodach, zmieniane są ich poziomy napięć. Te zmiany poziomów napięcia są następnie przekładane na poziomy logiczne, umożliwiając komunikowanie się ze sobą ECU w samochodzie.

Źródło obrazu: Spinningspark/Wikimedia

Do transmisji logicznej jedynki na magistrali CAN napięcie obu linii jest ustawione na 2,5 wolta. Ten stan jest również znany jako stan recesywny, co oznacza, że ​​magistrala CAN jest dostępna do użytku przez dowolny ECU.

Wręcz przeciwnie, logiczne 0 jest przesyłane przez magistralę CAN, gdy linia CAN High jest pod napięciem 3,5 V, a linia CAN Low ma napięcie 1,5 V. Ten stan autobusu jest również znany jako stan dominujący, który informuje każdy ECU w systemie, że inny ECU transmituje, więc powinni poczekać, aż transmisja się zakończy, zanim zaczną nadawać swoją wiadomość.

Aby umożliwić te zmiany napięcia, ECU samochodu są połączone z magistralą CAN za pośrednictwem nadajnika-odbiornika CAN i kontrolera CAN. Transceiver jest odpowiedzialny za konwersję poziomów napięcia na szynie CAN na poziomy zrozumiałe dla ECU. Kontroler natomiast służy do zarządzania odebranymi danymi i zapewnienia spełnienia wymagań protokołu.

Wszystkie te ECU podłączone do magistrali CAN mogą przesyłać dane po skręconym kablu, ale jest pewien haczyk, tylko wiadomość o najwyższym priorytecie może być przesyłana po magistrali CAN. Aby zrozumieć, w jaki sposób ECU przesyła dane przez magistralę CAN, musimy zrozumieć strukturę komunikatów protokołu CAN.

Zrozumienie struktury wiadomości protokołu CAN

Za każdym razem, gdy dwa ECU chcą się komunikować, komunikaty o poniższej strukturze są przesyłane przez magistralę CAN.

Komunikaty te są przesyłane poprzez zmianę poziomów napięcia na magistrali CAN, a konstrukcja skrętki przewodów CAN zapobiega uszkodzeniu danych podczas transmisji.

  • SOF: Skrót od Start Of Frame, bit SOF jest pojedynczą dominującą ramką danych bitowych. Ten bit jest przesyłany przez węzeł, gdy chce przesłać dane na magistrali CAN.
  • Identyfikator: Identyfikator w protokole CAN może mieć rozmiar 11 lub 29 bitów. Rozmiar identyfikatora zależy od używanej wersji protokołu CAN. Jeśli używana jest rozszerzona wersja CAN, to rozmiar identyfikatora wynosi 29 bitów, a w pozostałych przypadkach rozmiar identyfikatora to 11 bitów. Głównym celem identyfikatora jest identyfikacja priorytetu wiadomości.
  • RTR: Żądanie transmisji zdalnej lub RTR jest używane przez węzeł, gdy wymagane jest żądanie danych z innego węzła. Aby to zrobić, węzeł, który chce uzyskać dane, wysyła wiadomość z recesywnym bitem w ramce RTR do zamierzonego węzła.
  • DLC: Kod długości danych określa rozmiar danych przesyłanych w polu danych.
  • Pole danych: To pole zawiera ładunek danych. Rozmiar tego ładunku wynosi 8 bajtów, ale nowsze protokoły, takie jak CAN FD, zwiększają rozmiar tego ładunku do 64 bajtów.
  • CRC: Skrót od Cyclic Redundancy Check, pole CRC to ramka kontroli błędów. To samo ma rozmiar 15 bitów i jest obliczane zarówno przez odbiornik, jak i nadajnik. Węzeł nadawczy tworzy CRC dla danych podczas transmisji. Po otrzymaniu danych odbiornik oblicza CRC dla odebranych danych. Jeśli oba CRC są zgodne, potwierdza się integralność danych. Jeśli nie, dane zawierają błędy.
  • Pole potwierdzenia: Gdy dane są odebrane i są wolne od błędów, węzeł odbiorczy wprowadza dominujący bit do ramki potwierdzenia i odsyła go z powrotem do nadajnika. To informuje przetwornik, że dane zostały odebrane i są wolne od błędów.
  • Koniec ramki: Po zakończeniu transmisji danych przesyłanych jest siedem kolejnych recesywnych bitów. Gwarantuje to, że wszystkie węzły wiedzą, że węzeł zakończył transmisję danych i mogą przesyłać dane w magistrali.

Oprócz powyższych bitów protokół CAN ma kilka bitów zarezerwowanych do wykorzystania w przyszłości.

Uproszczenie CAN na przykładzie

Teraz, gdy mamy już podstawową wiedzę na temat tego, jak wygląda komunikat na magistrali CAN, możemy zrozumieć, w jaki sposób dane są przesyłane między różnymi ECU.

Dla uproszczenia załóżmy, że nasz samochód ma 3 ECU: Node 1, Node 2 i Node 3. Z 3 ECU Węzeł 1 i Węzeł 2 chcą komunikować się z Węzłem 3.

Zobaczmy, jak protokół CAN pomaga zapewnić komunikację w takim scenariuszu.

  • Wykrywanie stanu autobusu: Wszystkie ECU w samochodzie są podłączone do magistrali CAN. W naszym przykładzie Węzeł 1 i Węzeł 2 chcą przesłać dane do innego ECU; zanim to zrobisz, oba ECU muszą sprawdzić stan magistrali CAN. Jeśli magistrala jest w stanie dominującym, to ECU nie może przesyłać danych, ponieważ magistrala jest w użyciu. Z drugiej strony, jeśli autobus jest w stanie recesywnym, ECU mogą przesyłać dane.
  • Wysyłanie początku ramki: Jeśli napięcie różnicowe na magistrali CAN wynosi zero, zarówno Węzeł 1, jak i Węzeł 2 zmieniają stan magistrali na dominujący. Aby to zrobić, napięcie CAN High jest podnoszone do 3,5 V, a napięcie CAN Low jest redukowane do 1,5 V.
  • Decydowanie, który węzeł może uzyskać dostęp do magistrali: Po wysłaniu SOF oba węzły konkurują o dostęp do magistrali CAN. Magistrala CAN wykorzystuje protokół Carrier Sense Multiple Access/Collision Detection (CSMA/CD), aby zdecydować, który węzeł uzyska dostęp. Protokół ten porównuje identyfikatory przesyłane przez oba węzły i daje dostęp do tego o wyższym priorytecie.
  • Wysyłanie danych: Gdy węzeł uzyska dostęp do magistrali, pole danych wraz z CRC jest wysyłane do odbiorcy.
  • Sprawdzenie i zakończenie komunikacji: Po otrzymaniu danych Węzeł 3 sprawdza CRC odebranych danych. Jeśli nie ma błędów, Węzeł 3 wysyła komunikat CAN do węzła nadawczego z dominującym bitem w ramce potwierdzenia wraz z EOF w celu zakończenia komunikacji.

Różne rodzaje CAN

Chociaż struktura wiadomości używana przez protokół CAN pozostaje taka sama, prędkość transmisji danych i rozmiar bitów danych są zmieniane w celu przesyłania większych szerokości pasma danych.

Ze względu na te różnice, protokół CAN ma różne wersje, a ich przegląd znajduje się poniżej:

  • Szybka CAN: Dane w przewodach CAN są przesyłane szeregowo, a transmisja ta może odbywać się z różnymi szybkościami. W przypadku szybkiej sieci CAN prędkość ta wynosi 1 Mb/s. Ze względu na tę wysoką prędkość transmisji danych, wysoka prędkość może być wykorzystywana do ECU, które kontrolują układ napędowy i systemy bezpieczeństwa.
  • Niska prędkość CAN: W przypadku wolnoprzesyłowej sieci CAN szybkość przesyłania danych jest zmniejszona do 125 kb/s. Ponieważ niska prędkość może oferować niższe szybkości transmisji danych, jest używana do podłączenia ECU, które zarządzają komfortem pasażera, takich jak klimatyzacja lub system informacyjno-rozrywkowy.
  • Czy FD: Skrót od CAN flexible data rate, CAN FD to najnowsza wersja protokołu CAN. Zwiększa rozmiar ramki danych do 64 bajtów i umożliwia ECU przesyłanie danych z prędkością od 1 Mb/s do 8 Mb/s. Ta prędkość transmisji danych może być zarządzana przez ECU w czasie rzeczywistym w oparciu o wymagania systemowe, co pozwala na przesyłanie danych z większą prędkością.

Jaka jest przyszłość komunikacji motoryzacyjnej?

Protokół CAN pozwala kilku ECU komunikować się ze sobą. Ta komunikacja umożliwia korzystanie z funkcji bezpieczeństwa, takich jak elektroniczna kontrola stabilności i zaawansowane systemy wspomagania kierowcy, takie jak wykrywanie martwego pola i adaptacyjny tempomat.

To powiedziawszy, wraz z pojawieniem się zaawansowanych funkcji, takich jak autonomiczna jazda, ilość danych przesyłanych przez magistralę CAN rośnie wykładniczo. Aby umożliwić te funkcje, na rynek wchodzą nowsze wersje protokołu CAN, takie jak CAN FD.