Controller Area Network

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Przekierowanie Na tę stronę wskazuje przekierowanie z „CAN”. Zobacz też: inne znaczenia słowa CAN/Can.

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). Obecnie znajduje zastosowanie również w przemysłowych magistralach polowych (najpopularniejsze standardy: CANopen, DeviceNet, 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.[1]

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. 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,
  • komunikaty rozpoznawane przez identyfikatory,
  • automatyczna obsługa dostępu do magistrali,
  • sprzętowa obsługa błędów.

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.

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.

Inne[edytuj | edytuj kod]

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.

Kompatybliność[edytuj | edytuj kod]

Różne modele pojazdów mają różny poziom komunikacji z szyną CAN. Możliwe jest pobieranie bardzo wielu informacji i wykorzystywanie ich w celach diagnostycznych, CFM, telematycznych i innych[2].

Linki zewnętrzne[edytuj | edytuj kod]

Przypisy