Podręcznik

1. Interfejsy szeregowe

1.6. CAN-Controller Area Network

Controller Area Network (CAN) jest szeregową magistralą komunikacyjną powstałą w latach 80. w firmie Bosch GmbH z myślą o zastosowaniach w przemyśle samochodowym (ABS, sterowanie silnika). Magistrala CAN zawiera dwuprzewodową skrętkę (rys. 1.16) i pracuje z maksymalną szybkością transmisji 1Mbit/s na dystansie do 40m. Wraz ze zwiększaniem dystansu spada maksymalna szybkość transmisji (np. 250kbit/s na 250m).

 

Rys. 1.16 Schemat połączeń ma magistrali CAN

 

W magistrali CAN nie ma wyodrębnionej jednostki nadrzędnej dlatego należy ona do grupy magistral typu „multi-master”.  Komunikacja ma charakter rozgłoszeniowy ponieważ komunikaty obierane są przez wszystkie urządzenia. Najważniejsze cechy CAN-a to:

  •   do 8 bajtów danych w komunikacie,
  •   komunikaty rozpoznawane przez identyfikatory,
  •   automatyczna obsługa dostępu do magistrali.

Istnieją dwie wersje protokołu: 2.0A (11-bitowy identyfikator), 2.0B (29-bitowy identyfikator). Ramka danych CAN składa się z 7 pól: początku, arbitrażu, sterującego, danych, sumy kontrolnej, potwierdzenia i końca. Identyfikator nie jest przypisany do urządzenia, lecz do komunikatu. Identyfikator komunikatu określa priorytet dostępu do magistrali – im mniejsza wartość liczbowa, tym priorytet większy. Dostęp do magistrali jest przyznawany metodą dominacji bitowej (bit dominance) - 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 arbitrażu zawierającego identyfikator komunikatu. 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 sprzętowej kontroli błędów. Specjalizowane kontrolery formują komunikaty, sterują bezkolizyjnym dostępem do magistrali. Większość czołowych firm elektronicznych produkuje kontrolery CAN jako układy peryferyjne lub wbudowane.