Eliminacja problemów z transmisją danych w nadajniko-odbiornikach CAN dzięki testom na poziomie systemu
Przekazane przez: Północnoamerykańscy redaktorzy DigiKey
2023-10-11
Magistrala CAN (Controller Area Network) to sprawdzony i solidny standard komunikacji stosowany między innymi w automatyce przemysłowej i sektorze motoryzacyjnym. Istnieją dwie wersje tej technologii: CAN2.0 i nowsza wersja, CAN-Flexible Data (FD). Starsze systemy CAN2.0 można rozbudować, dodając węzły CAN-FD, które oferują wyższą przepustowość umożliwiającą obsługę krytycznych zdarzeń komunikacyjnych.
Obie technologie są ogólnie kompatybilne, ale wraz ze wzrostem złożoności i długości magistrali systemów, wyższa prędkość CAN-FD w systemach mieszanych może powodować problemy z synchronizacją, prowadzące do niepowodzenia transmisji.
W przypadku prostych systemów zadowalający może być test systemu CAN z wykorzystaniem pojedynczej krótkiej magistrali łączącej dwie pary kontrolerów i nadajniko-odbiorników. Jednak ten test często nie pozwala wykryć problemów, które mogą pojawić się w bardziej złożonych systemach wielowęzłowych zawierających kombinację komponentów CAN2.0 i CAN-FD. W wykryciu wszystkich problemów, które mogą wystąpić w terenie, może pomóc wyłącznie testowanie wszystkich potencjalnych przypadków użycia za pomocą bliźniaka systemu produkcyjnego.
W niniejszym artykule przedstawiono pokrótce interfejsy CAN2.0 i CAN-FD oraz wyjaśniono wyzwania związane z transmisją. Następnie opisano techniki testowania, dzięki którym można zminimalizować ryzyko awarii systemów korzystających z tych sieci w terenie. Przedstawiono przykładowe komponenty firmy Analog Devices, które posiadają funkcje wykrywania usterek i raportowania oraz pokazano, w jaki sposób użycie takich komponentów może przyspieszyć fazę testowania i rozwiązywania problemów we wdrożonych systemach. Opisano również powiązaną płytkę ewaluacyjną.
Czym są interfejsy CAN2.0 i CAN-FD?
CAN to standard komunikacji rozproszonej z wbudowaną obsługą usterek. Specyfikacje warstwy fizycznej (PHY) i warstwy łącza danych (DLL) zostały określone w normie ISO-118981.
Funkcje CAN to m.in.:
- Możliwość stosowania wielu urządzeń nadrzędnych w magistrali
- Zintegrowane poziomy priorytetów dla komunikatów
- Arbitraż magistrali według priorytetu komunikatów
- Wykrywanie i usuwanie błędów na wielu poziomach
- Synchronizacja taktowania danych w węzłach z oddzielnymi źródłami zegara
Magistrala CAN wykorzystuje schemat transmisji danych napięcia różnicowego z dwoma stanami napięcia magistrali: „recesywnym” (wyjścia sterownika mają wysoką impedancję) i „dominującym” z wartościami progowymi przedstawionymi w tabeli 1.
|
Tabela 1: recesywne i dominujące poziomy napięcia magistrali CAN w porównaniu z RS-485. Należy zauważyć, że logicznej wartości „0” odpowiada napięcie dominujące (wyższe). (Źródło ilustracji: Analog Devices)
Węzły przesyłają stan dominujący dla logicznej wartości „0” (w tym stanie jedna linia magistrali (CANH) jest w stanie wysokim, a druga (CANL) jest w stanie niskim) oraz stan recesywny dla logicznej wartości „1”. Magistralę CAN w trybie jałowym można odróżnić od magistrali w trybie recesywnej transmisji bitowej poprzez wykrycie wielu recesywnych bitów po zakończeniu ramki standardowej lub ramki błędu (ilustracja 1).
Ilustracja 1: schemat transmisji w magistrali CAN. Tryb jałowy jest identyfikowany przez wiele bitów recesywnych. (Źródło ilustracji: Analog Devices)
Nadajniko-odbiorniki magistrali CAN zapewniają różnicowy interfejs warstwy fizycznej (PHY) pomiędzy warstwą łącza danych (DLL), kontrolerem CAN (który często jest wbudowany w innym urządzeniu, takim jak mikrokontroler) oraz fizycznym oprzewodowaniem magistrali CAN. Różne elementy wymagane do wdrożenia magistrali CAN pokazano na ilustracji 2, wraz z ich relacjami do warstw Open Systems Interconnection (OSI) oraz funkcjami realizowanymi przez poszczególne elementy.
Ilustracja 2: nadajniko-odbiornik CAN stanowi różnicowy interfejs warstwy fizycznej (PHY) pomiędzy kontrolerem CAN i magistralą CAN. (Źródło ilustracji: Analog Devices)
Standard CAN2.0 został wprowadzony na rynek w 1991 roku i oferuje nominalną przepustowość 500kbit/s. Ponieważ ta szybkość transmisji danych czasami okazywała się niewystarczająca dla krytycznych zdarzeń komunikacyjnych, w 2012 roku wprowadzono na rynek magistralę CAN-FD. Magistrala CAN-FD zapewnia nominalną przepustowość do 2Mbit/s w normalnych warunkach pracy i maksymalnie 5Mbit/s w diagnostyce i programowaniu. Należy zauważyć, że wyższa prędkość komunikacji dotyczy tylko ładunku komunikatu. Inne elementy komunikatu, takie jak 11-bitowy identyfikator, cykliczna kontrola nadmiarowa (CRC) i potwierdzenie (ACK) są wysyłane z szybkością CAN2.0 równą 500kbit/s.
Kolejną różnicą między CAN2.0 i CAN-FD jest ładunek standardowej ramki danych, który jest zwiększony z 8B dla CAN2.0 do 64B dla CAN-FD. Ten wzrost ładunku sprawia, że komunikacja magistralą CAN-FD jest bardziej wydajna poprzez poprawę stosunku narzutu do danych. Co więcej, komunikaty, które wcześniej musiały być podzielone ze względu na ograniczenie ładunku CAN2.0 wynoszące 8B, można teraz w magistrali CAN-FD połączyć w jeden komunikat. Ponadto bezpieczeństwo można zwiększyć poprzez szyfrowanie komunikatów CAN-FD ze względu na większą szybkość transmisji danych i zwiększony ładunek.
Powszechne jest łączne stosowanie węzłów CAN2.0 i CAN-FD w tej samej sieci, ponieważ kontrolery CAN-FD obsługują zarówno protokoły CAN2.0, jak i CAN-FD. Mieszanie węzłów jest popularne, ponieważ umożliwia rozłożenie migracji ze starszych sieci do szybszego protokołu w dłuższym czasie. Jedną z wad systemów mieszanych jest dodatkowy koszt i złożoność, ponieważ nadajniko-odbiorniki muszą być w stanie obsługiwać metodę filtrowania CAN-FD w węzłach CAN2.0, aby zapewnić, że podczas komunikacji CAN-FD nie będą tworzone ramki błędów.
Mechanizmy arbitrażu i obsługi błędów magistrali CAN
Dowolny podłączony węzeł CAN może przesyłać dane do magistrali. Aby uniknąć kolizji w komunikacji, węzły negocjują wykorzystanie magistrali, tak aby komunikaty były przesyłane jeden po drugim, zgodnie z ich priorytetami. Magistrala CAN wykorzystuje nieniszczący i transparentny arbitraż. Węzeł wygrywający arbitraż kontynuuje transmisję swojego komunikatu o wyższym priorytecie bez zakłócania lub zniekształcania informacji przez żaden inny węzeł. Taki arbitraż jest możliwy, ponieważ transmisja bitu dominującego powoduje nadpisanie recesywnego stanu magistrali.
Standardowa ramka danych zawiera identyfikator komunikatu i kilka bitów flagi. Informacje te są znane jako „pole arbitrażowe”. Rozstrzygają one arbitraż, a co za tym idzie decydują o priorytecie komunikatu. Komunikaty z niższym identyfikatorem (więcej początkowych „0”) mają wyższy priorytet (ilustracja 3).
Ilustracja 3: standardowa ramka danych magistrali CAN zawiera identyfikator komunikatu oraz bity flagi RTR i IDE. To pole arbitrażowe określa wynik arbitrażu i priorytet komunikatu. (Źródło ilustracji: Analog Devices)
Nawet przy zastosowaniu schematu arbitrażowego coś może się nie udać. Aby poradzić sobie z problemami, protokół CAN posiada mechanizmy wspomagające sprawdzanie i obsługę błędów. Mechanizmy to min.:
- Weryfikacja bitów transmisji
- Cykliczna kontrola nadmiarowa (CRC)
- Kontrole pól bitowych o ustalonej formie
- Obowiązkowe potwierdzanie (ACK) komunikatu
Błędy są obsługiwane przy użyciu następujących mechanizmów:
- Klatki błędów
- Liczniki błędów
- Stany błędów węzła
Każdy kontroler CAN może wykrywać błędy i reagować poprzez wyzwalanie ramek błędów i liczników węzłów z błędami. Ramkę błędu rozróżnia się na podstawie sześciu kolejnych bitów dominujących lub recesywnych. Taka sekwencja jest sprzeczna z normalnymi regułami transmisji, dzięki czemu jest wykrywalna przez inne węzły. Węzły przesyłające ramki błędów wysyłają następnie bity recesywne, dopóki nie zostanie wykryte, że magistrala jest w stanie recesywnym. Po dalszej transmisji siedmiu bitów recesywnych węzeł może podjąć próbę transmisji zwykłych ramek CAN (ilustracja 4).
Ilustracja 4: w tym przykładzie nieprawidłowej transmisji (z powodu dodatkowych bitów [1] powodujących błąd bitowy cyklicznej kontroli nadmiarowej (CRC)) po prawej stronie pokazano ramkę błędu z sześcioma kolejnymi bitami. (Źródło ilustracji: Analog Devices)
Oprócz transmisji ramek błędów, każdy węzeł CAN wyposażony jest w liczniki błędów nadawania i odbioru. Każdy błąd powoduje, że licznik ten zwiększa stan o jeden, natomiast pomyślna transmisja lub odbiór komunikatu zmniejsza go o jeden. Liczniki błędów wskazują, że węzeł może znajdować się w stanie „błąd aktywny”, „błąd pasywny” lub „magistrala wyłączona”. W stanie „błąd aktywny” węzeł może komunikować się po magistrali i wysyłać flagi aktywnych błędów w przypadku wykrycia błędów. Stan „błąd pasywny” występuje, gdy licznik przekroczy 127. W tym stanie węzeł może wysyłać tylko flagi błędów pasywnych. Węzeł przechodzi ponownie w stan „błąd aktywny”, gdy stan licznika spadnie poniżej 127. Jeśli licznik przekroczy 256, węzeł przechodzi w stan „wyłączenie magistrali” i nie może komunikować się po magistrali. Liczniki węzłów można wyzerować po odebraniu 128 sekwencji 11 kolejnych bitów recesywnych.
Znaczenie kompleksowych testów
Mechanizmy arbitrażu i obsługi błędów w magistrali CAN pomagają utrzymać ciągłość pracy systemów w terenie w przypadku wystąpienia usterek. Jednak jest możliwa praca z wyższą sprawnością dzięki zaprojektowaniu systemów w taki sposób, aby ograniczyć błędy nadawania i odbioru. Jednym ze sposobów identyfikacji i naprawy słabych punktów przed wdrożeniem systemu jest jego testowanie w kilku scenariuszach operacyjnych.
Powszechnie stosowaną techniką jest sprawdzenie wybranego nadajniko-odbiornika CAN poprzez przesyłanie typowych standardowych ramek danych roboczych do wtyku TxD nadajniko-odbiornika za pomocą generatora funkcyjnego i sprawdzenie, czy występują jakiekolwiek błędy. Chociaż jest to rozsądny test dla pojedynczego węzła, nie jest dobrym odzwierciedleniem tego, jak prawdopodobnie poradzi sobie w terenie system wielowęzłowy z długą magistralą. Na przykład problemy, które mogą pojawić się w przypadku złożonych systemów, obejmują odbicia i inne artefakty wytwarzane przez odgałęzienia obwodów podczas pracy z wysoką częstotliwością. Mogą one wprowadzać przesunięcie fazowe między bitami.
Mechanizm arbitrażu magistrali CAN działa tylko wtedy, gdy bity są zsynchronizowane. Jeśli przesunięcie fazowe między bitami przekracza połowę czasu transmisji jednego bitu, wówczas synchronizacja kończy się niepowodzeniem i arbitraż jest niemożliwy.
W starszych systemach CAN2.0 działających z prędkością od 500kbit/s do 1Mbit/s, czas transmisji jednego bitu jest wystarczający, aby wywołane przesunięcia fazowe rzadko stanowiły problem. Jednak ze względu na większą przepustowość magistrali CAN-FD, czasy transmisji bitów są skrócone, a przesunięcia fazowe mogą szybko stać się znaczące.
Takie wyzwania należy złagodzić, odchodząc od zwykłego testowania pojedynczych węzłów na rzecz weryfikacji projektu poprzez zduplikowanie kompletnego systemu końcowego i testowanie go w różnych warunkach pracy. Chociaż jest to bardziej czasochłonne i droższe od podstawowego testowania, jest znacznie tańsze niż radzenie sobie z awariami w terenie i niezadowolonymi klientami.
Praktyczny przykład
Aby zobaczyć, jak testowanie z przesunięciem fazowym działa w praktyce, rozważmy system zaprojektowany z użyciem nadajniko-odbiornika CAN i kontrolera CAN od wybranego dostawcy. Węzeł jest podłączony do magistrali o długości 20m, która obsługuje również wiele innych węzłów, w tym komponenty CAN2.0 i CAN-FD. Na potrzeby testu, węzeł nadaje z prędkością 13,3Mbit/s, co odpowiada szerokości bitu 75ns. Dla celów synchronizacji i arbitrażu, kontroler próbkuje z 80% szerokością bitu TxD, więc wymaga minimalnej szerokości bitu RxD 0,8 x 75 = 60ns, z uwzględnieniem czasu narastania, czasu opadania i opóźnienia pętli. Testowany komponent generował szerokość bitu TxD 48ns, co skutkowało awarią systemu.
Ten sam test został przeprowadzony na alternatywnym nadajniko-odbiorniku CAN, MAX33012EASA+ firmy Analog Devices. W tym teście zmierzona szerokość bitów TxD wyniosła 75ns, a RxD - 72ns. Szerokość bitów 72ns przekracza wymóg 80% czasu próbkowania wynoszącego 60ns, więc synchronizacja i arbitraż systemu działają zadowalająco. Przepustowość 13,3Mbit/s jest wyższa od tej, którą system będzie wykorzystywał w docelowych zastosowaniach, co dowodzi, że urządzenie ma wystarczająco dobre parametry, aby działać we wszystkich przewidywanych warunkach pracy (ilustracja 5).
Ilustracja 5: wyniki testu z użyciem nadajniko-odbiornika CAN MAX33012EASA+ działającego z prędkością 13,3Mbit/s (szerokość bitów TxD 75ns) na magistrali o długości 20m. Szerokość bitów RxD wynosi 72ns i jest wystarczająca do spełnienia wymogu 80% czasu próbkowania (60ns) kontrolera i osiągnięcia synchronizacji. (Źródło ilustracji: Analog Devices)
Wbudowane funkcje rozwiązywania problemów
Cykl testowania można uprościć, a koszty obniżyć dzięki zastosowaniu komponentów, które zawierają funkcje wykrywania i raportowania usterek. Takie komponenty jak nadajniko-odbiornik CAN MAX33012EASA+ nie tylko szybko wykrywają problemy z prototypowymi i przedprodukcyjnymi obwodami CAN, ale są również przydatne w zastosowaniach, w których szybkie rozwiązywanie problemów jest ważne podczas wdrażania rzeczywistych systemów sterowania.
Nadajniko-odbiornik CAN +5V MAX33012EASA+ przeznaczony jest do usuwania takich typowych usterek, jak nadmierne natężenie prądu, nadmierne napięcie i niepowodzenie transmisji. Posiada on zabezpieczenie przed usterkami przy napięciach dochodzących do ±65V, dzięki czemu może być używany w zastosowaniach wymagających ochrony przed przepięciami. Zakres napięć sygnałów wspólnych ±25V umożliwia komunikację w środowisku, gdzie występują zakłócenia, na przykład w ciężkich maszynach. Wyjścia CANH i CANL posiadają ograniczenie prądu zwarciowego i są chronione przed nadmiernym rozpraszaniem mocy przez termiczny obwód wyłączający, który przełącza wyjścia sterownika w stan wysokiej impedancji.
Nadajniko-odbiornik CAN MAX33012EASA+ działa z prędkością do 5Mbit/s i posiada opcję zmniejszenia szybkości narastania do 8V/μs, aby zminimalizować zakłócenia elektromagnetyczne (EMI) i umożliwić użycie nieekranowanego kabla skręcanego lub równoległego (ilustracja 6).
Ilustracja 6: obwód aplikacyjny nadajniko-odbiornika CAN MAX33012EASA+ w systemie wielomodowym. W tym przykładzie mikrokontroler zawiera wbudowany kontroler CAN. (Źródło ilustracji: Analog Devices)
Funkcja wykrywania usterek przez nadajniko-odbiornik CAN jest uruchamiana po włączeniu zasilania, poprzez przejście przez TxD 100 zmian stanu niskiego na wysoki (zwykle jedna lub dwie standardowe ramki danych, w zależności od używanego protokołu). W przypadku wykrycia usterki po włączeniu funkcji wykrywania usterek, aby przesłany został kod usterki, wymaganych jest kolejnych 16 zmian stanu niskiego na wysoki na TxD. Wreszcie, aby usunąć usterkę, potrzeba jeszcze 10 impulsów.
Wykrywanie usterek transmisji jest wyzwalane, gdy sygnał na RxD nie zgadza się z TxD przez 10 kolejnych cykli po włączeniu funkcji wykrywania usterek. Może to mieć miejsce na przykład w przypadku braku obu rezystorów końcowych lub w przypadku zwarcia pomiędzy CANH i masą lub CANL i VDD, co skutkuje niezgodnością sygnału różnicowego ze specyfikacją.
Firma Analog Devices posiada w swojej ofercie zgodną z platformą Arduino płytkę ewaluacyjną z interfejsem CANbus MAX33012E, którą można wykorzystać do zademonstrowania funkcji MAX33012E. Urządzenie posiada kształt zgodny z nakładką Arduino, jednak może być używane jako samodzielna płytka ewaluacyjna.
Podsumowanie
Aby zapewnić niezawodne działanie wielomodowych systemów mieszanych CAN2.0 i CAN-FD w terenie, ważne jest dokładne przetestowanie całego projektu. Jednak, jeśli chodzi o wykrywanie usterek, które mogą później spowodować awarie w terenie, proste testy jednowęzłowe są niewystarczające ze względu na problemy z synchronizacją, które mogą zaburzać technologiczny mechanizm arbitrażu. Te wstępne testy i późniejsze rozwiązywanie problemów w terenie w mieszanych, wielowęzłowych systemach CAN można ułatwić, wybierając nadajniko-odbiorniki CAN, które posiadają wbudowane funkcje wykrywanie usterek i raportowania.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.



