Magistrala CAN

Standard CAN

Powstanie i zastosowanie magistrali CAN

Controller Area Network (CAN) to standard magistrali transmisyjnej stworzony przez firmę Robert Bosch GmbH już na początku lat osiemdziesiątych. Standard CAN powstał w wyniku zapotrzebowania branży motoryzacyjnej. Ilość i skomplikowanie wszelkich elektronicznych elementów w samochodach zaczęła bardzo szybko rosnąć (t.j czujniki, sterowniki oraz elementy wykonawcze), a co za tym idzie ilość danych które musiały być bezawaryjnie przesyłane pomiędzy poszczególnymi węzłami wymusiły powstanie nowego sposobu transmisji. Pierwsze zastosowanie miało miejsce przez koncern Mercedesa.

Podstawowymi cechami standardu który został przyjęty w 1993 za normę ISO 11898 są:

  • transmisja szeregowa, asynchroniczna

  • architektura multi-master – każdy węzeł sieci może inicjować transmisję

  • transmisja rozgłoszeniowa (broadcast) – zmniejsza wymagania dotyczące szerokości pasma i sprzyja elastyczności projektowania; dane są wysyłane do wszystkich węzłów i to one decydują o dalszym przetwarzaniu lub nie danych

  • szybka i o dużym zasięgu – maksymalna prędkość 1 Mbps; maksymalna długość 1km; (maksymalna możliwa prędkość zmniejsza się w zależności od długości magistrali)

  • odporna na błędy i bezpieczna – sygnał różnicowy jest odporny na zakłócenia, a dodatkowo posiada zaawansowane funkcje wykrywania błędów i automatycznej retransmisji błędnych ramek, co prowadzi do wysokiej niezawodności komunikacji

Ze względu na powyższe cechy, a także dodatkowe atuty takie jak: prosta konstrukcja (media i topologia magistrali), niskie koszty w masowej produkcji oraz łatwość utrzymania standard CAN przyjął się nie tylko w motoryzacji gdzie jest on dominujący, ale i w szeroko rozumianych instalacjach przemysłowych.

Gdzie możemy spotkać magistralę CAN na co dzień:

  • Pojazdy osobowe, ciężarowe, autobusy (pojazdy spalinowe i elektryczne)

  • Sprzęt rolniczy

  • Sprzęt elektroniczny dla lotnictwa i nawigacji

  • Automatyka przemysłowa i sterowanie mechaniczne

  • Windy, schody ruchome

  • Automatyka budowlana

  • Instrumenty i urządzenia medyczne

  • Rowery elektryczne

  • Modele kolejowe

  • Statki i inne zastosowania morskie

  • Systemy kontroli oświetlenia

  • Drukarki 3D

Ponieważ standard CAN nie obejmuje zadań protokołów warstwy aplikacji, takich jak sterowanie przepływem, adresowanie urządzeń i transport bloków danych większych niż jedna wiadomość, a przede wszystkim danych aplikacyjnych, powstało wiele implementacji protokołów warstwy wyższej. Kilka z nich jest standaryzowanych dla danego obszaru działalności, choć wszystkie mogą być rozszerzane przez poszczególnych producentów. Najpopularniejsze protokoły wyższej warstwy to m.in.: DeviceNet, J1939 i CANopen. W przypadku samochodów osobowych każdy producent ma swój własny standard.

Jedną z kluczowych cech CAN, która sprawia, że jest on tak łatwy do zaadaptowania, jest to, że protokół zajmuje się składaniem ramek, arbitrażem w zakresie dostępu do magistrali, wypełnianiem bitów, sprawdzaniem błędów, ograniczaniem błędów i synchronizacją danych. Pozwala to projektantowi systemu skupić się na oprogramowaniu aplikacyjnym, w przeciwieństwie do konieczności martwienia się o oprogramowanie protokołu.

Topologia magistrali CAN

Jak już wiemy CAN jest standardem wielomasterowej, a więc do komunikacji w sieci CAN wymagane są dwa lub więcej węzły. Węzłem może być prosty microkontroler jak i komputer z rozbudowanym oprogramowaniem. Komputer taki może być również bramą pozwalającą na dostęp do urządzeń podłączonych do magistrali CAN.

Standard CAN

Przykładowa magistrala z 4 węzłami

Wszystkie węzły są połączone ze sobą fizycznie za pomocą dwuprzewodowej magistrali. Przewody stanowią skręcone pary o impedancji charakterystycznej 120Ω.

Magistrala CAN musi być zakończona. Rezystory terminacji są potrzebne do tłumienia odbić, odporności na szumy, jak również powrotu magistrali do stanu recesywnego. High-speed CAN używa rezystora 120 Ω na każdym końcu liniowej magistrali.

Sygnały elektryczne w magistrali CAN

Magistrala ta wykorzystuje napięciowe sygnały różnicowe. Gdy jakiekolwiek urządzenie nadaje logiczne “0” (dominanta), kontroler CAN podnosi poziom linii CAN High do poziomu 3,5 V, i obniża CAN Low do poziomu 1,5 V. Powstaje różnica napięć między liniami o napięciu 2V. Natomiast jeśli żadne urządzenie nie nadaje dominanty, rezystory terminujące pasywnie przywracają oba przewody do stanu recesywnego (“1”) z nominalnym napięciem różnicowym 0V. Czyli bit danych “0” koduje stan dominujący, podczas gdy bit danych “1” koduje stan recesywny.

Standard CAN

Dzięki zastosowaniu sygnału różnicowego kiedy na magistrali pojawi się napięcie wynikające z zakłóceń, to różnica napięć na skręconych liniach nadal będzie taka sama i transmisja będzie niezakłócona.

Elektryczne aspekty warstwy fizycznej (napięcie, prąd, liczba przewodników) określono w normie ISO 11898-2:2003. Jednak mechaniczne aspekty warstwy fizycznej (typ i liczba złączy, kolory, etykiety, rozkład pinów) nie zostały jeszcze formalnie określone. W rezultacie możemy spotkać różne złącza o nieznormalizowanej pinologii. Niemniej jednak w automatyce przemysłowej najbardziej powszechne jest 9-pin D-sub typu męskiego złącza z następującym pin-out:

pin 2: CAN-Low (CAN-), pin 3: GND (masa), pin 7: CAN-High (CAN+)

Brak kompletnej specyfikacji warstwy fizycznej (mechanicznej oprócz elektrycznej) uwolnił specyfikację magistrali CAN od ograniczeń i złożoności implementacji fizycznej. Jednakże pozostawił on implementacje magistrali CAN otwarte na problemy interoperacyjności z powodu niekompatybilności mechanicznej.

Budowa typowego węzła CAN

 

Każdy węzeł wymaga centralnej jednostki obliczeniowej, mikroprocesora lub procesora głównego. To on decyduje, co oznaczają otrzymane komunikaty i jakie komunikaty chce przekazać. Do niego można podłączyć czujniki, siłowniki i urządzenia sterujące.

Kontroler CAN stanowi integralną część mikrokontrolera. Producent może zintegrować w gotowym komputerze lub dodać za pomocą odpowiedniej karty rozszerzeń do komputerów ogólnego zastosowania.

Przebieg transmisji:

Odbieranie: kontroler CAN przechowuje odebrane bity szeregowe z magistrali do momentu, gdy dostępny jest cały komunikat, który procesor może następnie pobrać.

Wysyłanie: procesor wysyła komunikaty nadawcze do kontrolera CAN, który transmituje bity szeregowo na magistralę, gdy magistrala jest wolna.

Ostatnim elementem węzła jest transceiver – odpowiada on za dwukierunkowe przekształcenie strumienia danych pomiędzy poziomami logicznymi poziomami bitowymi używanymi przez kontroler CAN (TX/RX), a występującymi na magistrali napięciami różnicowymi (CAN High/CAN Low). Zwykle posiada obwody ochronne, aby chronić kontroler CAN przed zbyt wysokimi napięciami które mogą pojawić się na magistrali.

CAN (ISO 11898-1) opiera się na mechanizmie „broadcast communication”. Każda ramka danych CAN dostarcza identyfikator, który powinien być unikalny w obrębie całej sieci. Wskazuje on na zawartość i określa priorytet dostępu do sieci. Jest to ważne w przypadku, gdy kilku uczestników sieci konkuruje o dostęp do sieci (arbitraż sieciowy). Takie podejście umożliwia adresowanie treści, jak również adresowanie węzłów, w zależności od wybranej warstwy sieciowej. W rezultacie uzyskuje się wysoki stopień elastyczności systemu i konfiguracji.

Łatwo jest dodać węzły CAN do istniejącej sieci bez dokonywania jakichkolwiek modyfikacji sprzętowych lub programowych obecnych węzłów CAN, o ile nowe węzły CAN są tylko odbiornikami. Umożliwia to realizację koncepcji modułowej, pozwala na odbiór wielu danych oraz synchronizację rozproszonych procesów. Ponadto transmisja danych nie opiera się  dostępności określonych typów uczestników sieci. Dzięki temu serwisowanie i modernizacja sieci jest dość prosta.

źródła:

https://www.can-cia.org/can-knowledge/

https://en.wikipedia.org/wiki/CAN_bus

https://e2e.ti.com/blogs_/b/industrial_strength/posts/can-we-start-at-the-very-beginning

https://wagodirect.pl/yes-you-can-wprowadzenie-do-sieci-can-cz-1/

Inne wpisy

Dlaczego DDR5 ma znaczenie dla serwerów: Czy warto dokonać zmiany?

Który typ pamięci jest odpowiedni dla danej platformy serwerowej? – RDIMM vs UDIMM W ciągu ostatniej dekady liczba rdzeni procesorów serwerowych gwałtownie wzrosła z 12 rdzeni na gniazdo do 96, a ostatnio do 128 rdzeni na gniazdo. Przepustowość pamięci skalowała…

Czytaj więcej
NVIDIA

Aetina – innowacyjne rozwiązania NVIDIA dedykowane AI

Aetina jest producentem innowacyjnych komputerów przemysłowych dedykowanych AI oraz specjalistycznych kart graficznych dla branż AI, IoT oraz Edge Computing. Udostępnia szereg rozwiązań z akceleracją GPU, wyposaża komputery oparte na architekturze ARM i x86 oraz układy ASIC w sztuczną inteligencję….

Czytaj więcej

Różnica pomiędzy NVMe a PCIe

Przy deskrypcji dysków SSD, termin „PCIe” jest zwykle pisany razem ze słowem „NVMe”, przez co może nasunąć się pytanie: Jaka jest różnica pomiędzy NVMe a PCIe? Nieustanny postęp technologiczny sprawia, że warto na moment cofnąć się do początków standardu…

Czytaj więcej