Definicja #
CAN (Controller Area Network) to standard magistrali komunikacyjnej opracowany przez firmę Bosch w 1983 roku i znormalizowany jako ISO 11898. Został zaprojektowany specjalnie dla motoryzacji jako niezawodny protokół wymiany danych między sterownikami elektronicznymi (ECU — Electronic Control Units) bez centralnego komputera głównego.
Kluczowe cechy protokołu CAN:
- Multi-master — każdy węzeł może inicjować transmisję; arbitraż dostępu do magistrali odbywa się automatycznie (CSMA/CR)
- Ramki komunikatów — wiadomości mają 11-bitowy (standard) lub 29-bitowy (extended) identyfikator; priorytetyzacja przez arbitraż bitowy
- Niezawodność — wbudowane mechanizmy wykrywania błędów (CRC, bit stuffing, potwierdzenie ACK); odporność na zakłócenia elektromagnetyczne (EMI)
- Prędkość transmisji — do 1 Mbit/s (klasyczny CAN); CAN FD (Flexible Data-rate) do 8 Mbit/s i większe ramki danych
- Topologia magistrali — wszystkie węzły podłączone do jednego kabla (twisted pair); zakończenia rezystorami 120 Ω
Warianty CAN:
- CAN 2.0A/B — klasyczny standard (11-bit / 29-bit identyfikator)
- CAN FD (Flexible Data-rate) — większy payload (64 bajty vs 8), wyższa prędkość w fazie danych
- CAN XL — najnowszy standard (2021), do 20 Mbit/s, payload 2048 bajtów; dla ADAS i E/E architektur przyszłości
CAN jest omnipotentny w motoryzacji: każdy nowoczesny samochód zawiera wiele sieci CAN obsługujących silnik, skrzynię biegów, hamulce ABS/ESP, airbagi, klimatyzację i systemy ADAS.
Zastosowania #
- Sieci ECU w pojazdach — komunikacja między sterownikiem silnika (ECU), skrzynią biegów, ABS, ESP i innymi modułami; każdy nowoczesny samochód ma wiele sieci CAN
- Systemy ADAS — Advanced Driver Assistance Systems (radar, kamery, lidar) wymieniają dane przez CAN lub CAN FD
- Automatyka przemysłowa — maszyny CNC, roboty przemysłowe, linie produkcyjne używają CAN do komunikacji sensorów i aktuatorów
- Diagnostyka OBD-II — protokół OBD-II (diagnostic port w samochodach) wykorzystuje CAN jako warstwę fizyczną
- Urządzenia medyczne i sprzęt lotniczy — niezawodność CAN sprawia, że stosowany jest w krytycznych systemach sterowania
Ścieżka nauki #
CAN jest specjalistycznym protokołem — nauka jest wskazana dla embedded developerów i inżynierów automotive.
Zacznij od:
- Podstawy protokołu CAN: ramki (Data Frame, Remote Frame, Error Frame), identyfikatory, arbitraż
- Elektryka magistrali CAN: CANH/CANL, różnicowe napięcie, terminatory, topologia
- Narzędzia: Vector CANalyzer, PCAN (PEAK System), SocketCAN (Linux) do analizy i debugowania magistrali CAN
- Mikrokontrolery z CAN: STM32 (bxCAN), NXP S32K, Microchip MCP2515 (SPI-CAN controller)
Następnie pogłębiaj:
- CANopen — protokół warstwy aplikacji (Application Layer) nad CAN; popularny w automatyce przemysłowej
- SAE J1939 — protokół dla pojazdów ciężarowych (ciągniki, autobusy) nad CAN 2.0B
- UDS (Unified Diagnostic Services) — protokół diagnostyki ECU przez CAN (ISO 14229)
- CAN FD — nowszy standard; praca z mikrokontrolerami obsługującymi CANFD (np. STM32G4)
- AUTOSAR — framework dla oprogramowania automotive; komunikacja przez CAN opisana w ARXML
FAQ #
- Czym jest CAN bus i do czego służy?
- CAN bus (Controller Area Network) to magistrala komunikacyjna łącząca sterowniki elektroniczne (ECU) w pojeździe lub maszynie przemysłowej. Umożliwia niezawodną wymianę danych między niezależnymi modułami (silnik, hamulce, airbagi) bez centralnego komputera — każdy węzeł może wysyłać i odbierać wiadomości.
- Ile urządzeń można podłączyć do magistrali CAN?
- Teoretycznie do 2032 węzłów (11-bit ID daje 2048 identyfikatorów, część zarezerwowana). W praktyce ograniczają to pojemność elektryczna kabla i czas latencji — typowe sieci automotive mają kilkanaście do kilkudziesięciu ECU. Prędkość magistrali zależy od długości kabla: 1 Mbit/s możliwe do ok. 40 m.
- Czym różni się CAN od Ethernet w samochodach?
- CAN jest wolniejszy (do 1 Mbit/s klasyczny), ale bardzo niezawodny i odporny na EMI — idealny dla systemów krytycznych bezpieczeństwa (ABS, airbagi). Automotive Ethernet (100BASE-T1, 1000BASE-T1) jest znacznie szybszy i stosowany dla danych ADAS (kamery, lidar, radar). Nowoczesne auta mają obie sieci.
- Czym jest OBD-II i jaki ma związek z CAN?
- OBD-II (On-Board Diagnostics II) to standard diagnostyczny. Europejski odpowiednik EOBD był wymagany dla nowych samochodów benzynowych od 2001 roku i diesli od 2004 roku. Złącze OBD-II/EOBD (gniazdo pod deską rozdzielczą) umożliwia odczyt danych i błędów z ECU. Protokół ISO 15765-4 (CAN) jest najczęściej używaną warstwą fizyczną OBD-II w nowoczesnych samochodach.