Magistrala CAN
Controller Area Network (CAN) to standard magistrali transmisyjnej stworzony przez firmę Robert Bosch GmbH już na początku lat osiemdziesiątych. 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. 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ęzeł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. 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. Magistrala CAN 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. 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) zostały określone w normie ISO 11898-2:2003, która jest obecnie powszechnie akceptowana. 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. 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. 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 może stanowi integralną część mikrokontrolera, być zintegrowanym w gotowym komputerze przez producenta lub może zostać dodany 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 może być następnie pobrany przez procesor. 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 jest oparta na 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/