Podstawy CAN Bus: warstwa fizyczna, struktura ramki i wykrywanie błędów
Opracowany przez Bosch w 1986 roku i znormalizowany jako ISO 11898, CAN bus jest podstawowym magistralą polową dla urządzeń HVAC, chłodnic, napędów o zmiennej prędkości i kontrolerów automatyki budynkowej. Sygnalizacja różnicowa, sprzętowy arbitraż i pięciowarstwowe wykrywanie błędów czynią go znacznie bardziej odpornym niż RS485 Modbus w elektrycznie hałaśliwych maszynowniach — a zrozumienie tych podstaw jest niezbędne przed wdrożeniem jakiegokolwiek urządzenia CANopen.
Warstwa fizyczna ISO 11898-2 i sygnalizacja różnicowa
ISO 11898-2 definiuje High-Speed CAN — wariant stosowany w niemal wszystkich aplikacjach automatyki budynkowej i przemysłowych. Warstwa fizyczna wykorzystuje parę różnicową: CAN_H (CAN High) i CAN_L (CAN Low), obie odniesione do GND. W stanie recesywnym (logika 1) obie linie pływają na około 2,5V, a napięcie różnicowe wynosi 0V. W stanie dominującym (logika 0) CAN_H jest sterowane do około 3,5V, a CAN_L do około 1,5V, dając 2V różnicę odporną na szumy wspólne do ±30V.
Używaj ekranowanej skrętki o charakterystycznej impedancji 120Ω — Belden 9841 (jednoparowa, 24AWG) lub odpowiednik. Podłączaj ekran tylko z jednego końca (zazwyczaj przy tablicy) aby uniknąć pętli masy. Oba końce segmentu magistrali muszą być zakończone rezystorem 120Ω między CAN_H i CAN_L. Terminacja dzielona (dwa rezystory 60Ω z kondensatorem 4,7nF do masy w punkcie środkowym) poprawia wydajność EMC w środowiskach o dużym poziomie zakłóceń.
Okablowanie CAN bus — połączenie 3-przewodowe
CAN bus cable (Belden 9841 or equivalent, 120Ω STP): CAN_H → CAN_H terminals on all nodes CAN_L → CAN_L terminals on all nodes GND → GND terminals on all nodes (reference, not signal ground) Termination resistors: Node 1 (first node on bus): 120Ω between CAN_H and CAN_L Node N (last node on bus): 120Ω between CAN_H and CAN_L All intermediate nodes: NO termination Measure termination (bus powered off): CAN_H to CAN_L resistance should read ~60Ω (Two 120Ω resistors in parallel = 60Ω) Values outside 54–66Ω indicate missing or extra termination
Ostrzeżenie: Topologia gwiazdowa i drzewiasta są niedozwolone w CAN bus. Wszystkie węzły muszą być podłączone do jednego liniowego kabla pniowego — gałęzie boczne muszą być krótsze niż 0,3m, aby zapobiec odbiciu sygnału. Długie odgałęzienia powodują błędy bitów dominujących przy wysokich prędkościach bitowych.
Prędkość bitowa a długość kabla
Prędkość bitowa CAN bus jest ograniczona opóźnieniem propagacji — czasem potrzebnym sygnałowi na dotarcie do najdalszego węzła i powrót przed zakończeniem okresu bitu. ISO 11898-2 określa standardowe kombinacje prędkości bitowej i długości kabla. Systemy automatyki budynkowej rzadko potrzebują 1 Mbit/s; 125 kbit/s lub 250 kbit/s jest typowe dla urządzeń HVAC na trasach kablowych 100–500m między maszynowniami.
| Prędkość bitowa | Maks. długość kabla | Maks. długość odgałęzienia | Typyczne zastosowanie |
|---|---|---|---|
| 1 Mbit/s | 40 m | 0,3 m | Sterowanie maszynami, krótkie połączenia wewnątrz szafy |
| 500 kbit/s | 100 m | 0,3 m | Napędy przemysłowe, kompaktowa maszynownia |
| 250 kbit/s | 250 m | 0,3 m | HVAC wielochłodnicowy, piętrowa maszynownia |
| 125 kbit/s | 500 m | 0,3 m | Szkielet budynku, trasy międzypiętrowe |
| 50 kbit/s | 1000 m | 0,3 m | Długie trasy kablowe, duże obiekty |
| 20 kbit/s | 2500 m | 0,3 m | Kampus, rzadko stosowane |
Uwaga: Wszystkie węzły w jednym segmencie CAN muszą pracować z tą samą prędkością bitową. Mieszanie urządzeń 250 kbit/s i 125 kbit/s na tej samej magistrali jest niemożliwe — użyj wzmacniacza CAN lub oddzielnych segmentów połączonych przez bramkę, jeśli wymagane są różne prędkości.
Struktura ramki CAN
Standardowa ramka danych CAN (ISO 11898-1) składa się z siedmiu pól. Zrozumienie pola identyfikatora arbitrażu jest kluczowe dla konfiguracji CANopen — COB-ID (Communication Object Identifier) używany w CANopen to 11-bitowy standardowy identyfikator CAN. Ramki rozszerzone używają 29-bitowych identyfikatorów i są stosowane w CANopen z 4-bajtowymi COB-ID (rozszerzony tryb adresowania).
| Pole | Bity | Opis |
|---|---|---|
| SOF | 1 | Start of Frame — bit dominujący synchronizujący wszystkie odbiorniki |
| ID arbitrażu (standardowy) | 11 | Identyfikator wiadomości — niższa wartość = wyższy priorytet na magistrali |
| ID arbitrażu (rozszerzony) | 29 | Rozszerzony format ramki — zawiera 11-bitową bazę + 18-bitowe rozszerzenie |
| RTR | 1 | Remote Transmission Request — 1 = żądanie danych od innego węzła |
| IDE | 1 | Bit rozszerzenia identyfikatora — 0 = ramka standardowa, 1 = ramka rozszerzona |
| DLC | 4 | Data Length Code — liczba bajtów danych: 0 do 8 |
| Dane | 0–64 bity | Ładunek: 0 do 8 bajtów dla klasycznego CAN; do 64 bajtów dla CAN FD |
| CRC | 15 + 1 | 15-bitowa cykliczna kontrola nadmiarowości plus ogranicznik CRC (bit recesywny) |
| ACK | 2 | Gniazdo potwierdzenia (dominujące) + ogranicznik ACK (recesywny) |
| EOF | 7 | End of Frame — 7 bitów recesywnych |
Mechanizmy wykrywania błędów
CAN posiada pięć niezależnych mechanizmów wykrywania błędów działających jednocześnie. Każdy wykryty błąd powoduje odrzucenie bieżącej ramki przez wszystkie węzły i ponowne wysłanie przez nadajnik. Węzeł wielokrotnie powodujący błędy przechodzi ze stanu error-active do error-passive, a następnie do stanu bus-off, chroniąc sieć przed wadliwym węzłem.
| Typ błędu | Metoda wykrywania | Częsta przyczyna |
|---|---|---|
| Błąd CRC | Odbiornik przelicza CRC i porównuje z przesłaną wartością | Uszkodzone bity danych z EMI lub długiego kabla |
| Błąd bitu | Nadajnik monitoruje magistralę i wykrywa niezgodność poziomu własnego bitu | Zwarcie, kolizja na magistrali, usterka okablowania |
| Błąd ramki | Pola o stałym formacie (EOF, ogranicznik CRC) sprawdzane pod kątem prawidłowego poziomu | Błąd bit stuffing, uszkodzona struktura ramki |
| Błąd ACK | Nadajnik sprawdza, czy co najmniej jeden odbiornik wysyła dominujące ACK | Brak węzła, zła prędkość bitowa, brak terminacji |
| Błąd stuffing | Po 5 kolejnych bitach tego samego poziomu musi nastąpić bit komplementarny | EMI powoduje ciąg tego samego poziomu powyżej 5 bitów |
Niedestrukcyjny bitowy arbitraż
Gdy dwa lub więcej węzłów próbuje nadawać jednocześnie, CAN rozwiązuje konflikt przez bitowy arbitraż bez niszczenia żadnej wiadomości. Każdy węzeł monitoruje magistralę podczas nadawania — jeśli węzeł nadaje bit recesywny (1), ale odczytuje bit dominujący (0), natychmiast zatrzymuje nadawanie i przełącza się w tryb odbiornika. Węzeł z najniższą numeryczną wartością identyfikatora arbitrażu zawsze wygrywa.
W CANopen oznacza to, że niższe COB-ID mają wyższy priorytet. Wiadomości alarmowe (EMCY, COB-ID 0x080 + ID węzła) i wiadomości heartbeat otrzymują niższe COB-ID niż dane PDO — zapewniając, że alarmy nigdy nie są opóźniane przez ruch danych procesowych. Przypisuj najniższe ID węzłów do najbardziej krytycznych urządzeń, takich jak bramki paneli pożarowych lub kontrolery alarmów chłodnic.
CAN FD — Flexible Data-rate
CAN FD (ISO 11898-1:2015) rozszerza klasyczny CAN o dwa ulepszenia: zmienną prędkość bitową fazy danych do 8 Mbit/s (w porównaniu z 1 Mbit/s dla klasycznego CAN) i rozmiar ładunku do 64 bajtów (w porównaniu z 8 bajtami). Faza arbitrażu nadal działa z klasyczną prędkością bitową dla kompatybilności — tylko faza danych przełącza się na wyższą prędkość bitową po bicie BRS (Bit Rate Switch).
| Parametr | Klasyczny CAN | CAN FD |
|---|---|---|
| Maks. prędkość bitowa arbitrażu | 1 Mbit/s | 1 Mbit/s (ta sama — wstecznie kompatybilna) |
| Maks. prędkość bitowa fazy danych | 1 Mbit/s | 8 Mbit/s |
| Maks. bajtów ładunku | 8 bajtów | 64 bajty |
| Długość CRC | 15 bitów | 17 lub 21 bitów (dłuższe dla większych ładunków) |
| Zastosowanie w automatyce budynkowej | Powszechne — większość urządzeń HVAC | Pojawiające się — nowsze VFD, liczniki energii |
Uwaga: Większość urządzeń CAN do automatyki budynkowej (chłodnice, centrale wentylacyjne, napędy VFD) nadal używa klasycznego CAN przy 125 lub 250 kbit/s. Sprzęt CAN FD (PEAK-System PCAN-USB FD, Vector CANalyzer FD) jest wstecznie kompatybilny i może komunikować się z klasycznymi węzłami CAN w tym samym segmencie, pod warunkiem, że faza danych nie jest angażowana podczas komunikacji z klasycznymi węzłami.
Narzędzia diagnostyczne
Używaj analizatora CAN podczas uruchomienia, aby weryfikować ruch na magistrali, monitorować ramki błędów i potwierdzać ID węzłów przed integracją z bramką CANopen. Trzy narzędzia są standardem w branży.
| Narzędzie | Interfejs | Zastosowanie |
|---|---|---|
| PEAK-System PCAN-USB | Klucz USB, ~€100 | Bezpłatne oprogramowanie PCAN-View — nasłuchiwanie ruchu, wysyłanie ramek, zapis do CSV |
| PEAK-System PCAN-USB FD | Klucz USB CAN FD, ~€130 | Jak wyżej, ale obsługuje fazę danych CAN FD do 8 Mbit/s |
| Vector CANalyzer | Karta PCI/USB, profesjonalna | Pełna analiza protokołu, widok słownika obiektów CANopen, skryptowanie |
| Kvaser Leaf Light v2 | Klucz USB, ~€180 | Bezpłatne oprogramowanie Kvaser CanKing — dobre do uruchomienia w terenie |
| PCAN-View (bezpłatny) | Oprogramowanie (Windows) | Używane z adapterami PEAK — filtrowanie po COB-ID, monitorowanie liczników błędów |
Potrzebujesz tablicy CAN bus z integracją bramki CANopen?
Projektujemy i budujemy rozdzielnice niskonapięciowe z bramkami CANopen-to-KNX/Modbus/BACnet, właściwą terminacją 120Ω, ekranowanym okablowaniem CAN i dokumentacją uruchomienia dla obiektów HVAC i przemysłowych.
Zapytaj o ofertę →