Wyjaśnienie magistrali CAN: jak kontrolery, systemy zarządzania bateriami (BMS) i wyświetlacze ze sobą komunikują się
W nowoczesnym urządzeniu elektrycznym, elementy nie tylko wymieniają energię, ale również informacje. Sterownik musi znać stan baterii, wyświetlacz – prędkość i temperatury, a drugi sterownik – parametry pierwszego. Najpopularniejszym sposobem na to jest rozwiązanie pochodzące z branży motoryzacyjnej: złącze CAN. Ten przewodnik wyjaśnia, jak ono działa i jak prawidłowo podłączyć je, unikając błędów.
Najważniejsze
- Interfejs CAN łączy ze sobą wiele urządzeń za pomocą pojedynczej pary skręconych przewodów, zwanych odpowiednio "CAN High" i "CAN Low".
- Potrzebny jest rezystor o wartości 120 omów na każdym z dwóch końców magistrali, a tylko na końcach.
- Każda wiadomość posiada identyfikator, który pełni również funkcję priorytetu: najważniejsze wiadomości są zawsze wyświetlane jako pierwsze.
- Wszystkie urządzenia muszą korzystać z tej samej prędkości transmisji danych.
Autobus, a nie połączenie
Klasyczne połączenie szeregowe łączy dwa urządzenia. CAN, z kolei, jest szyną komunikacyjną: wszystkie urządzenia są podłączone do tych samych dwóch przewodów, a każde z nich może komunikować się z każdym innym. Aby dodać urządzenie, wystarczy podłączyć je do szyny, bez konieczności ciągnięcia nowego kabla do kontrolera. To właśnie sprawiło, że stała się ona standardem w motoryzacji, gdzie dziesiątki komputerów wykorzystują tylko kilka par przewodów.
W lekkich pojazdach elektrycznych zazwyczaj znajdują się jeden lub więcej kontrolerów, system zarządzania baterią (BMS), wyświetlacz, moduł telemetrii lub ładowarka.
Dwa przewody, jedna różnica
CAN wykorzystuje parę przewodów: CAN High i CAN Low. Informacja nie jest przesyłana za pomocą napięcia jednego przewodu w stosunku do masy, ale za pomocą różnicy między tymi dwoma przewodami:
- W stanie spoczynku (w trybie "recessive"), oba przewody mają napięcie zbliżone do połowy napięcia zasilania obwodu
- Aby wysłać bit "dominujący", nadajnik rozłącza oba przewody: przewód górny podnosi się, a przewód dolny opada.
Zakłócenia elektryczne, takie jak te generowane przez kontroler dostarczający setki amperów, wpływają na oba przewody w podobny sposób. Ich różnica, natomiast, pozostaje niezmieniona. To właśnie sprawia, że protokół CAN jest tak odporny w środowisku elektrycznym pełnym zakłóceń, pod warunkiem, że oba przewody są skręcone razem.
Rezystory końcowe
Pojemnik CAN musi mieć rezystancję 120 omów pomiędzy liniami CAN High i CAN Low na każdym ze swoich dwóch końców fizycznych. Zapobiega to odbijaniu się sygnałów na końcu kabla i przywraca magistralę do stanu spoczynku.
- Połączenie magistrali komunikacyjnej (CAN) zostało prawidłowo wykonane: mierząc napięcie między liniami CAN High i CAN Low, przy wyłączonych urządzeniach, otrzymujemy około 60 omów (co odpowiada połączeniu dwóch rezystorów po 120 omów równolegle).
- Około 120 omów: brakuje rezystora zakończeniowego.
- Wartość wyraźnie niższa niż 60 omów: oznacza to zbyt dużą liczbę podłączonych urządzeń, co często wynika z aktywacji zakończeń przez wiele urządzeń jednocześnie.
Brakujące lub nadmiarowe złącza są najczęstszą przyczyną niestabilnego połączenia.
Identyfikatory i priorytety
Każdy komunikat CAN posiada identyfikator, czyli numer, który wskazuje, o czym ten komunikat informuje (np. „stan baterii” lub „żądana prędkość silnika przedniego”). Urządzenia odczytują wszystkie komunikaty i przechowują tylko te, które są dla nich istotne.
Kiedy dwa urządzenia zaczynają transmitować jednocześnie, porównują swoje identyfikatory bit po bicie, za pomocą tego samego przewodu. Dominujący bit zastępuje bit podrzędny: urządzenie, które wysyła bit podrzędny i odbiera bit dominujący, rozumie, że przegrało i przestaje transmitować. Najmniejszy identyfikator zawsze wygrywa, a żadna informacja nie zostaje uszkodzona. Nazywa się to arbitrażem: wiadomości o krytycznym znaczeniu otrzymują najmniejsze identyfikatory.
Wbudowana niezawodność
- Każda wiadomość zawiera kod kontrolny. Uszkodzona wiadomość jest wykrywana i ponownie przesyłana.
- Każdy odbiornik potwierdza prawidłowy odbiór za pomocą pojedynczego bitu potwierdzenia.
- Urządzenie, które generuje zbyt wiele błędów, automatycznie wyłącza się, aby nie zablokować całego systemu.
Prędkość magistrali
Wszystkie urządzenia podłączone do magistrali muszą działać z tą samą prędkością. Najczęściej stosowane wartości to 250 i 500 kilobitów na sekundę, a czasami 1 megabit. Im szybsza jest magistrala, tym krótsza może być jej maksymalna długość. Jednak w przypadku lekkich pojazdów, o długości nie przekraczającej kilku metrów, długość zazwyczaj nie stanowi ograniczenia. Nowsza wersja, CAN FD, umożliwia przesyłanie większej ilości danych w każdym komunikacie przy wyższej prędkości.
Przykład: dwa kontrolery połączone
W hulajnodze z dwoma silnikami, dwa kontrolery połączone magistralą CAN działają jak jeden: ten, który odbiera sygnał z przycisku przyspieszenia, przekazuje go do drugiego, a jedno oprogramowanie do konfiguracji widzi oba. Dotyczy to kontrolerów VESC, o których mowa w naszym przewodniku „VESC – proste wyjaśnienie”.
Wskazówka dla warsztatu.
Zawsze łączcie przewody CAN (CAN high i CAN low) razem, oddalcie je od przewodów fazowych i sprawdźcie rezystancję 60 omów za pomocą multimetru przed pierwszym uruchomieniem. Pięć minut kontroli może zaoszczędzić wiele godzin poszukiwania problemów z komunikacją.
Często zadawane pytania
Czy magistrala CAN przesyła prąd do zasilania urządzeń?
Nie, para CAN przesyła tylko informacje. Urządzenia są zasilane oddzielnie, a czasami zasilanie jest dostarczane przez inne przewody w tym samym kablu.
Dlaczego komunikacja CAN działa u mnie w sposób przerywany?
Najczęstsze przyczyny to brakujące lub nadmierne zakończenia, nieprzekręcone przewody znajdujące się w pobliżu kabli zasilających, uszkodzone złącze lub dwa urządzenia, które nie mają tej samej prędkości magistrali.
Czy można podłączyć dowolne urządzenia komunikujące się za pomocą protokołu CAN do siebie?
Elektrycznie, tak, jeśli urządzenia korzystają z tej samej magistrali komunikacyjnej. Jednak, aby mogły się ze sobą porozumieć, muszą używać tego samego „języka”: tych samych identyfikatorów i tego samego formatu wiadomości. Dwa różne urządzenia od różnych producentów nie będą się komunikować bez odpowiednich modyfikacji.