Przejdź do zawartości

Controller Area Network

Z Wikipedii, wolnej encyklopedii

Controller Area Network (CAN) – szeregowa magistrala komunikacyjna powstała w latach 80. XX w. w firmie Robert Bosch GmbH z myślą o zastosowaniach w przemyśle samochodowym (ABS, sterowanie silnika), choć zastosowanie znajduje także w innych dziedzinach (budownictwo)[1]. Stosowana również w przemysłowych magistralach polowych (najpopularniejsze standardy: CANopen(inne języki), DeviceNet(inne języki), SDS).

Etymologia

[edytuj | edytuj kod]

Nazwa Controller Area Network (CAN) została zaproponowana przez profesora Wolfharda Lawrenza z Uniwersytetu Nauk Stosowanych w Braunschweig-Wolfenbüttel w Niemczech[2].

Działanie

[edytuj | edytuj kod]

Magistrala CAN wykorzystuje dwuprzewodową skrętkę i pracuje z maksymalną prędkością transmisji 1 Mb/s na dystansie do 40 m. Wraz ze zwiększaniem dystansu spada maksymalna prędkość transmisji (np. 250 kbit/s na 250 m).

Budowa

[edytuj | edytuj kod]

W magistrali CAN nie ma wyodrębnionej jednostki nadrzędnej dlatego należy do grupy magistral typu multi-master(inne języki). Komunikacja ma charakter rozgłoszeniowy ponieważ komunikaty nadawane na magistralę odbierane są przez wszystkie urządzenia (CSMA/CR). Najważniejsze cechy CAN-a to:

  • do 8 bajtów danych w komunikacie (wyjątek stanowi protokół CAN-FD, w którym możemy przesłać do 64 bajtów),
  • komunikaty rozpoznawane przez identyfikatory,
  • automatyczna obsługa dostępu do magistrali poprzez arbitraż (w przypadku kolizji wygrywa niższe ID[3]),
  • sprzętowa obsługa błędów,
  • brak adresacji węzłów

Warstwa Fizyczna

[edytuj | edytuj kod]
Poziomy napięć magistrali CAN high-speed (ISO11898-2)

Standard rozróżnia dwa rodzaje konfiguracji magistrali CAN: high-speed (zdefiniowany przez ISO 11898-2), oraz low-speed (zdefiniowany przez ISO-11898-3)[4].

Różnice te nie dotyczą jedynie prędkości transmisji, ale również konfiguracji elektrycznej magistrali. Różnią się zarówno poziomy napięć jak i rodzaj terminacji. Dla obu standardów występują również różne możliwe topologie sieci. W budowie typowego węzła magistrali CAN różnice będą dotyczyć transceivera, nie samego kontrolera.

Magistrale o różnych typach są niekompatybilne i nie powinno łączyć się ze sobą węzłów pracujących w różnych standardach[5].

Poziomy napięć magistrali CAN low-speed (ISO11898-3)

CAN high-speed osiąga prędkości transmisji do 1 Mbit/s (do 5Mbit/s w CAN-FD). Terminacja realizowana jest na dwóch końcach magistrali rezystorami o wartości 120Ω. Topologia takiej magistrali może być jedynie liniowa. Magistrala w tej wersji jest elastyczna: dokładanie kolejnych węzłów, lub usuwanie już istniejących nie ma praktycznie żadnego wpływu na konfigurację elektryczną i poprawność komunikacji.

CAN low-speed (nazywany również CAN fault-tolerant) osiąga prędkości transmisji 125 kbit/s. Topologia może być liniowa, w kształcie gwiazdy lub mieszana. Terminacja realizowana jest wyłącznie na każdym z węzłów za pomocą dwóch rezystorów. Wartość rezystancji zależy od liczby pozostałych węzłów podłączonych do magistrali. Dlatego ten rodzaj konfiguracji jest dużo mniej elastyczny, ponieważ dokładanie lub usuwanie z magistrali poszczególnych węzłów ma wpływ na konfigurację elektryczną całości. Liczba węzłów musi zostać oszacowana już na etapie projektowania sieci tak, aby dobrać właściwe wartości rezystancji terminujących dla każdego węzła.

W standardzie low-speed możliwa jest komunikacja bez jednego z przewodów (High lub Low) w razie awarii, przez co standard ten nazwany został potocznie fault-tolerant

We współczesnych rozwiązaniach CAN low-speed jest rzadkością i został on zdecydowanie wyparty przez CAN high-speed.

Protokoły

[edytuj | edytuj kod]
Ramki komunikatów CAN w standardzie 2.0A
Ramki komunikatów CAN w standardzie 2.0B

Obecnie w praktyce funkcjonują dwie wersje protokołu: 2.0A (11-bitowy identyfikator) i 2.0B (29-bitowy identyfikator). Wersja 2.0B jest wersją rozszerzoną formatu 2.0A. Ramka danych CAN składa się z 7 pól – początku, arbitracji, sterującego, danych, sumy kontrolnej, potwierdzenia i końca[6].

W standardzie 2.0B pole arbitracji ma 32 bity (12 w 2.0A). Identyfikator komunikatu zajmujący niemal całe pole arbitracji, określa priorytet dostępu do magistrali – im mniejsza wartość liczbowa, tym priorytet większy. Charakterystyczne dla magistrali CAN jest to, że identyfikator nie jest przypisany do urządzenia, lecz do komunikatu. Dostęp do magistrali jest przyznawany metodą dominacji bitowej (bit dominance). Polega ona na tym, że wszystkie stacje badają stan magistrali czekając na możliwość wysłania własnego komunikatu. Konflikty wynikające z ewentualnego podjęcia równoczesnego nadawania przez kilka stacji są rozwiązywane w początkowej fazie transmisji w trakcie wysyłania pola arbitracji zawierającego identyfikator komunikatu. Jeżeli fizyczne medium transmisyjne posiada własność dominacji zera (jak w przypadku tzw. iloczynu na drucie), wysłanie przez jedną stację wartości logicznej 0 (poziom dominujący), a przez drugą 1 (poziom recesywny) powoduje, że na magistrali ustala się 0. Dostęp do łącza otrzyma więc stacja o niższym numerze identyfikacyjnym. Stąd też wynika warunek poprawnej arbitracji wymagający, aby w sieci dwa urządzenia nie mogły nadawać komunikatów o tym samym identyfikatorze.

CAN charakteryzuje się dużą odpornością na zakłócenia i niezawodnością. Uzyskano to poprzez nadawanie danych w postaci napięciowego sygnału różnicowego oraz dzięki sprzętowej obsłudze protokołu i kontroli błędów. Specjalizowane kontrolery formują komunikaty, sterują bezkolizyjnym dostępem do magistrali, filtrują komunikaty. Obecnie większość czołowych firm elektronicznych produkuje kontrolery CAN jako układy peryferyjne lub wbudowane np. w mikrokontrolerach.

Oprócz CAN w przemyśle samochodowym mają zastosowanie również LIN oraz FlexRay.

Przypisy

[edytuj | edytuj kod]
  1. Agencja Kreatywna Magico, Sterowanie, regulacja silnika EDC Common Rail, magistrala CAN [online], www.wtryskiwacz.com [dostęp 2018-10-19] (pol.).
  2. CAN in Automation (CiA): History of the CAN technology [online], www.can-cia.org [dostęp 2017-11-22] (ang.).
  3. Zderzenie 2 ramek na magistrali, czyli Arbitracja na CANie.. Systemy Wbudowane 2023-09-08. [dostęp 2025-05-27].
  4. CAN High Speed czy CAN Low Speed? Nie wolno ich łączyć! [online], 25 lipca 2024 [dostęp 2025-05-27].
  5. CAN High Speed czy CAN Low Speed? Nie wolno ich łączyć! [online], 25 lipca 2024 [dostęp 2025-05-27].
  6. 2 jedyne rzeczy, które musisz wiedzieć o ramce CAN. Systemy Wbudowane 2023-08-31. [dostęp 2025-05-27].

Linki zewnętrzne

[edytuj | edytuj kod]