Magistrala CAN (Controller Area Network) to dwuprzewodowa, cyfrowa sieć komunikacyjna oparta na wymianie ramek. Umożliwia wielu sterownikom przesyłanie danych w czasie rzeczywistym za pomocą wspólnej pary przewodów, przede wszystkim w pojazdach, maszynach i systemach automatyki.
Najważniejsze zalety CAN to ograniczenie okablowania, wysoka odporność na zakłócenia, priorytetyzacja komunikatów, wbudowana kontrola błędów oraz łatwa rozbudowa sieci.
Co to jest magistrala CAN?
Magistrala CAN to cyfrowa szyna danych, za pośrednictwem której moduły elektroniczne wymieniają informacje w czasie rzeczywistym. W praktyce pełni funkcję „układu nerwowego” nowoczesnego pojazdu lub maszyny.
Technicznie jest to dwuprzewodowa sieć komunikacyjna działająca w trybie półdupleksowym. W klasycznym standardzie CAN prędkość transmisji może wynosić do 1 Mbit/s.
Najważniejsze cechy magistrali CAN obejmują:
- Wielu równorzędnych nadawców – każdy sterownik, czyli ECU lub inny węzeł, może nadawać i odbierać dane, a sieć nie wymaga jednostki nadrzędnej;
- Komunikację w czasie rzeczywistym – protokół i mechanizm arbitrażu zapewniają przewidywalne opóźnienia, zwłaszcza w przypadku komunikatów o wysokim priorytecie;
- Transmisję różnicową – dane są przesyłane przewodami CAN H i CAN L, co zwiększa odporność na zakłócenia elektromagnetyczne;
- Komunikację opartą na komunikatach – identyfikator określa rodzaj przesyłanych danych, a nie adres nadawcy lub odbiorcy.
Standard CAN został opracowany z myślą o przemyśle motoryzacyjnym. Obecnie jego warstwę fizyczną i warstwę łącza danych opisują między innymi normy z rodziny ISO 11898.
Budowa magistrali CAN – warstwa fizyczna
Przewody i topologia
Magistrala CAN wykorzystuje dwa przewody: CAN H i CAN L. Najczęściej tworzą one skrętkę, która ogranicza wpływ zakłóceń elektromagnetycznych. Standardowo stosuje się topologię liniowej magistrali, do której są podłączone wszystkie sterowniki.
Najważniejsze parametry warstwy fizycznej to:
- Dwa przewody sygnałowe – CAN H i CAN L przesyłają sygnał różnicowy;
- Skrętka przewodów – zwiększa odporność na zakłócenia i pomaga zachować prawidłowe parametry transmisji;
- Terminacja magistrali – na obu końcach sieci zazwyczaj stosuje się rezystory terminujące o wartości 120 Ω;
- Prędkość do 1 Mbit/s – w klasycznym CAN jest osiągalna przy długości magistrali wynoszącej około 40 m;
- Transmisja półdupleksowa – w danym momencie magistralę zajmuje jeden komunikat.
Transmisja odbywa się w trybie różnicowym. Odbiornik analizuje różnicę napięć między przewodami CAN H i CAN L, a nie ich bezwzględne poziomy. Dzięki temu sieć może działać niezawodnie także w środowisku narażonym na zakłócenia wspólne.
Stan dominujący i recesywny
CAN wykorzystuje dwa stany logiczne. Stan dominujący ma pierwszeństwo na magistrali — jeżeli choć jeden węzeł nadaje bit dominujący, wszystkie odbiorniki odczytują właśnie ten stan. Stan recesywny występuje wtedy, gdy żaden węzeł nie nadaje bitu dominującego.
Mechanizm ten stanowi podstawę arbitrażu bitowego, który rozstrzyga, jaki komunikat ma pierwszeństwo, gdy kilka węzłów rozpoczyna nadawanie w tym samym czasie.
Jak magistrala CAN komunikuje sterowniki?
Rozgłaszanie komunikatów
Komunikacja w CAN odbywa się za pomocą ramek rozgłaszanych do wszystkich węzłów podłączonych do sieci. Każdy sterownik odbiera komunikaty pojawiające się na magistrali, a następnie na podstawie identyfikatora i filtrów akceptacji decyduje, które dane powinien przetworzyć.
Jest to komunikacja oparta na treści. Identyfikator opisuje rodzaj przesyłanych danych, na przykład prędkość obrotową silnika lub położenie pedału hamulca, a nie adres konkretnego odbiorcy.
Wymiana informacji krok po kroku
Transmisja danych przez magistralę CAN przebiega następująco:
- sterownik, na przykład sterownik silnika, zbiera dane z czujników i przetwarza je na postać cyfrową;
- kontroler CAN przygotowuje ramkę danych, dodając identyfikator, pola sterujące, dane i sumę kontrolną;
- ramka jest wysyłana przez transceiver CAN na magistralę złożoną z przewodów CAN H i CAN L;
- wszystkie pozostałe węzły odbierają komunikat;
- węzły zainteresowane danym identyfikatorem akceptują ramkę i odczytują jej zawartość.
Jeden komunikat może jednocześnie dostarczyć dane wielu sterownikom. Informacja o prędkości pojazdu może być wykorzystywana przez zestaw wskaźników, moduły ABS i ESP, nawigację oraz system multimedialny.
Wielu nadawców i arbitraż priorytetów
CAN jest siecią z wieloma równorzędnymi nadawcami. Każdy sterownik może rozpocząć transmisję, gdy magistrala jest wolna. Jeżeli co najmniej dwa węzły zaczną nadawać jednocześnie, uruchamiany jest arbitraż:
- identyfikatory ramek są porównywane bit po bicie;
- niższy identyfikator liczbowy oznacza wyższy priorytet komunikatu;
- węzeł nadający ramkę o niższym priorytecie przerywa transmisję i czeka na zwolnienie magistrali.
Arbitraż nie powoduje uszkodzenia przesyłanych danych. Komunikat o wyższym priorytecie jest nadawany bez przerwy, a pozostałe węzły ponawiają próbę transmisji po zwolnieniu magistrali.
Dzięki temu mechanizmowi CAN zapewnia pierwszeństwo komunikatom krytycznym, na przykład związanym z hamowaniem lub stabilizacją toru jazdy, a jednocześnie eliminuje klasyczne kolizje prowadzące do utraty ramek.
Struktura ramki CAN
Każdy komunikat CAN ma ściśle zdefiniowaną strukturę. Klasyczna ramka danych zawiera następujące pola:
- Początek ramki – SOF, czyli Start of Frame, sygnalizuje rozpoczęcie transmisji;
- Pole arbitrażu – zawiera identyfikator określający rodzaj danych i priorytet komunikatu;
- Pole sterujące – określa między innymi długość danych i format ramki;
- Pole danych – w klasycznym CAN mieści do 8 bajtów danych użytkownika;
- Pole sumy kontrolnej – CRC umożliwia sprawdzenie poprawności transmisji;
- Pole potwierdzenia – ACK informuje o poprawnym odebraniu komunikatu przez co najmniej jeden węzeł;
- Koniec ramki – EOF, czyli End of Frame, oznacza zakończenie transmisji.
W sieci CAN występują cztery podstawowe typy ramek:
- Ramka danych – przenosi dane użytkownika i jest najczęściej używanym typem ramki;
- Ramka zdalnego żądania – służy do żądania danych oznaczonych określonym identyfikatorem;
- Ramka błędu – sygnalizuje wykrycie nieprawidłowości przez węzeł;
- Ramka przeciążenia – umożliwia opóźnienie rozpoczęcia kolejnej transmisji.
Stosuje się dwa podstawowe formaty identyfikatorów: standardowy CAN 2.0A z identyfikatorem 11-bitowym oraz rozszerzony CAN 2.0B z identyfikatorem 29-bitowym.
Obsługa błędów i niezawodność komunikacji
Jedną z najważniejszych zalet CAN jest sprzętowa obsługa protokołu i rozbudowana kontrola błędów. Kontrolery CAN wykonują automatycznie następujące operacje:
- Weryfikacja transmisji – kontrolowana jest suma CRC oraz zgodność poszczególnych pól ramki;
- Wykrywanie nieprawidłowości – rozpoznawane są między innymi błędy bitowe, błędy formatu i błędy potwierdzenia;
- Sygnalizowanie błędów – po wykryciu niezgodności węzeł wysyła odpowiednią ramkę błędu;
- Kontrolowana retransmisja – niepoprawnie przesłany komunikat może zostać automatycznie nadany ponownie;
- Izolowanie niesprawnych węzłów – mechanizm ograniczania skutków błędów pozwala wyłączyć z transmisji urządzenie generujące zbyt wiele nieprawidłowych ramek.
Rozbudowane mechanizmy kontroli sprawiają, że CAN dobrze sprawdza się w systemach, w których bezpieczeństwo i niezawodność komunikacji mają kluczowe znaczenie. Dotyczy to między innymi pojazdów, maszyn roboczych, systemów kolejowych i automatyki przemysłowej.
Zastosowania magistrali CAN
Motoryzacja
W nowoczesnych samochodach magistrala CAN jest jedną z podstawowych sieci komunikacyjnych. Łączy elektroniczne jednostki sterujące, czyli ECU, i pozwala im korzystać ze wspólnych danych.
Do magistrali CAN mogą być podłączone między innymi:
- Sterownik silnika – przesyła dane dotyczące prędkości obrotowej, temperatury i obciążenia silnika;
- Sterownik ABS i ESP – wymienia informacje o prędkości kół oraz stanie układu hamulcowego i stabilizacji toru jazdy;
- Sterownik poduszek powietrznych – przetwarza komunikaty związane z bezpieczeństwem;
- Sterownik nadwozia i komfortu – obsługuje między innymi oświetlenie, centralny zamek i klimatyzację;
- Zestaw wskaźników – odczytuje informacje o prędkości, obrotach, temperaturach i stanie pojazdu.
CAN umożliwia jednostkom ECU wymianę danych bez prowadzenia osobnego przewodu dla każdego sygnału. Komunikaty mogą być rozsyłane w czasie rzeczywistym do wszystkich zainteresowanych modułów pojazdu.
Telemetria, GPS i monitorowanie flot
Systemy telematyczne korzystają z magistrali CAN, aby odczytywać między innymi prędkość obrotową silnika, przebieg, poziom paliwa i zapisane kody błędów. Pozwala to monitorować sposób użytkowania pojazdu, planować serwis i analizować koszty eksploatacji floty.
Dane dostępne w sieci mogą być również wykorzystywane przez systemy zabezpieczeń do wykrywania nieautoryzowanego uruchomienia pojazdu lub nietypowej aktywności.
Dostęp do magistrali CAN może jednak stać się celem ataku. Integracja urządzeń zewnętrznych powinna więc uwzględniać kontrolę dostępu, segmentację sieci i odpowiednie mechanizmy cyberbezpieczeństwa.
Przemysł, automatyka i robotyka
Protokół CAN jest szeroko stosowany także w innych obszarach:
- maszynach przemysłowych;
- robotyce mobilnej;
- automatyce budynkowej;
- urządzeniach medycznych;
- systemach kolejowych.
Sieć jest ceniona wszędzie tam, gdzie potrzebna jest niezawodna komunikacja wielu sterowników działających w jednym urządzeniu, pojeździe lub systemie.
Zalety magistrali CAN
Mniej okablowania
CAN pozwala przesyłać wiele informacji za pomocą jednej wspólnej magistrali, zamiast prowadzić osobne przewody dla każdego sygnału między sterownikami.
Multipleksowanie sygnałów obniża koszty produkcji, zmniejsza masę instalacji elektrycznej oraz ułatwia montaż, diagnostykę i serwisowanie wiązek.
Odporność na zakłócenia
Transmisja różnicowa po skrętce złożonej z przewodów CAN H i CAN L zapewnia wysoką odporność na zakłócenia elektromagnetyczne i szumy. Dzięki temu magistrala może pracować w otoczeniu silników, przekaźników, przetwornic oraz obwodów dużej mocy.
Sprzętowa kontrola błędów i mechanizm izolowania niesprawnych węzłów dodatkowo zwiększają niezawodność całej sieci.
Priorytetyzacja komunikatów
Mechanizm arbitrażu bitowego zapewnia pierwszeństwo komunikatom o wyższym priorytecie, na przykład dotyczącym hamowania i bezpieczeństwa. Węzeł nadający komunikat o niższym priorytecie przerywa transmisję bez uszkodzenia zwycięskiej ramki.
Jeżeli kilka węzłów rozpocznie nadawanie jednocześnie, transmisję kontynuuje ramka z niższym identyfikatorem liczbowym, czyli wyższym priorytetem. Jest to szczególnie ważne w systemach czasu rzeczywistego, w których opóźnienia krytycznych danych muszą być przewidywalne.
Skalowalność i elastyczność
Architektura CAN ułatwia rozwijanie systemu. Każdy węzeł może nadawać i odbierać dane, dlatego dodanie modułu nie wymaga przebudowy centralnej jednostki nadrzędnej.
Komunikacja opiera się na identyfikatorach, więc nowe funkcje można wdrażać przez definiowanie kolejnych komunikatów i filtrów akceptacji. Każdy sterownik samodzielnie wybiera istotne dla niego ramki.
Diagnostyka i integracja systemów
Ujednolicona magistrala pozwala wykorzystywać dane z wielu sterowników podczas diagnostyki pojazdu, na przykład za pośrednictwem interfejsu OBD. Wybrane parametry mogą być również odczytywane przez urządzenia GPS, systemy monitorowania i zabezpieczenia.
Protokoły wyższych warstw, takie jak CANopen i SAE J1939, określają sposób organizowania oraz interpretowania danych. Ułatwia to integrację urządzeń i tworzenie współpracujących systemów.
Ograniczenia i wyzwania związane z CAN
Podczas projektowania sieci należy uwzględnić również ograniczenia standardu:
- Prędkość transmisji – klasyczny CAN osiąga do 1 Mbit/s, dlatego jest wolniejszy od Ethernetu; w bardziej wymagających zastosowaniach można wykorzystać CAN FD;
- Topologia magistrali – uszkodzenie przewodu, zwarcie lub nieprawidłowe zakończenie linii może zakłócić pracę wielu węzłów jednocześnie;
- Cyberbezpieczeństwo – klasyczny CAN nie zapewnia wbudowanego szyfrowania ani uwierzytelniania komunikatów, co może umożliwić podszywanie się pod inne węzły;
- Złożoność diagnostyki – prawidłowa analiza arbitrażu, filtrów, liczników błędów i parametrów warstwy fizycznej wymaga specjalistycznej wiedzy oraz odpowiednich narzędzi.
Mimo tych ograniczeń CAN pozostaje jednym z najważniejszych i najbardziej niezawodnych protokołów komunikacyjnych stosowanych w systemach wbudowanych.
CAN w praktyce projektanta systemów elektronicznych
Magistrala CAN jest dobrym wyborem podczas projektowania modułu pojazdu, sterownika maszyny lub robota, gdy:
- wiele węzłów musi wymieniać dane w czasie rzeczywistym;
- urządzenie pracuje w środowisku narażonym na zakłócenia elektromagnetyczne;
- ważne są niezawodność, diagnostyka i możliwość późniejszej rozbudowy systemu.
W praktycznych układach wykorzystuje się następujące komponenty:
- Mikrokontrolery ze sprzętowym kontrolerem CAN – są dostępne między innymi w wielu rodzinach STM32;
- Zewnętrzne kontrolery CAN – układy takie jak MCP2515 komunikują się z mikrokontrolerem przez interfejs SPI;
- Transceivery CAN – realizują warstwę fizyczną i dostosowują poziomy logiczne kontrolera do sygnałów magistrali.
Na tle prostych interfejsów, takich jak UART, I²C i SPI, CAN wyróżnia się następującymi możliwościami:
- wyższą odpornością na zakłócenia;
- obsługą wielu równorzędnych węzłów;
- wbudowanym wykrywaniem błędów i arbitrażem priorytetów.


