Can High Speed vs. Can Low Speed – różnice między protokołami

systemywbudowane.pl 3 miesięcy temu
Zdjęcie: Can High Speed vs. Can Low Speed – różnice między protokołami


O co tu wogóle chodzi?

CAN High-Speed, oraz CAN Low-Speed to dwa standardy CAN.

A to nie jest tak, iż różnią się tylko bitrate’y i jeden jest wolniejszy a drugi szybszy?

Nie – różnice między nimi są istotne, ale poza poziomem bitrate’ów dotyczą jedynie warstwy fizycznej.

Co to znaczy?

To znaczy, iż same ramki i wszystkie zasady komunikacji wyglądają tak samo. Różnią się jednak poziomy napięć, oraz sposoby terminacji węzłów na magistrali. Dlatego też standardy te nie są ze sobą kompatybilne. Urządzenia dedykowane do pracy z CAN High-Speedem nie powinny pracować na Low-Speedzie i odwrotnie.

Ale w moim samochodzie jest zarówno High-Speed jak i Low Speed

W niektórych pojazdach występują oba te standardy, jednak dwie magistrale różnego typu nie są ze sobą podłączone. Aby zapewnić komunikację pomiędzy magistralami różnych rodzajów, potrzebny jest Gateway.

Ale u mnie na biurku połączyłem sobie dwa urządzenia z różnych standardów i komunikacja działa normalnie

Czasami udaje się skomunikować ze sobą węzły działające na różnych standardach warstwy fizycznej. Czasem podłączając wprost, czasem konieczna jest pewna sztuczka z rezystorami terminującymi. Zależy to głównie od tego jakie w tych urządzeniach zastosowane zostały transceivery. Jednak o ile na biurku lub w garażu można eksperymentować, wykorzystanie takiego połączenia w pojazdach byłoby dużym błędem.

– Zaraz, ale przecież zawsze na CANie są dwa przewody: CAN High i CAN Low, jak to się ma do tych dwóch standardów?

Nijak. Jest to kolizja oznaczeń. Sygnał na magistrali CAN przesyłany jest dwuprzewodowo, symetrycznie. Przewody te (a w zasadzie potencjały) nazywane są odpowiednio: CAN High i CAN Low (zapisywane czasami jako CAN-H i CAN-L, lub CAN-Hi i CAN-Lo). Nazwy te nie mają nic wspólnego z tymi dwoma standardami.

Różnice między CAN High Speed i CAN Low Speed

Główne różnice

Can Low-Speed nazywany jest również Fault Tolerant, ponieważ jest bardziej odporny na błędy warstwy fizycznej. W razie usterki może on pracować na jednym przewodzie sygnałowym, podczas gdy Can High-Speed do poprawnego działania potrzebuje obu linii sygnałowych.

Poziomy napięć

Poziomy napięć różnią się znacznie w tych dwóch standardach. W CAN Low Speed poziom potencjału CAN Low jest przesunięty do góry i jest wyższy niż poziom potencjału CAN High. Zwróć jednak uwagę, iż sam kształt tych potencjałów się nie różni: dla zer i jedynek na magistrali, poziomy potencjałów (wysoki, niski) są takie same.

W CAN Low-Speed referencją dla pomiaru poziomu napięcia jest GND – dlatego może on działać bez jednej linii. W CAN High speed napięcie mierzone jest różnicowo; w stanie recesywnym wynosi 0V (ten sam poziom napięcia), w stanie dominującym ok 2V.

Dowiedz się więcej na temat protokołu CAN – kurs video Wszystko o magistrali CAN

Terminacja

CAN High-Speed

Tutaj terminacja jest bardzo prosta: dwa rezystory terminujące 120 Ohm, po jednym na każdym końcu magistrali:

CAN Low-Speed

Tutaj terminacja jest masakrycznie pogmatwana, ponieważ po pierwsze występuje podwójnie na każdym z węzłów w postaci rezystorów terminujących każdą z linii osobno: RTH i RTL.

Po drugie wartość tych rezystancji zależy od pozostałych węzłów na magistrali.

Co to znaczy?

Na etapie projektowania sieci należy najpierw przewidzieć liczbę węzłów, które pojawią się na magistrali. Następnie dobiera się wartości poszczególnych rezystancji tak, aby wartość rezystancji zastępczej dla wszystkich z rezystorów (RTH / RTL) mieściła się w przedziale od 100 do 500 Ohmów, jednak bliżej dolnego limitu tego zakresu.

Rezystancję całkowitą wyznacza się podobnie do rezystancji zastępczej w obwodzie równoległym (dla każdego z potencjałów RTH / RTL z osobna):

No dobrze, ale z tego wynika, iż na magistrali w tym standardzie nie mogę sobie ot-tak dołożyć albo usunąć dowolnego węzła z magistrali, bo terminacja może się rozjechać?

Nie możesz XD

To znaczy, pewnie możesz w jakimś zakresie. jeżeli po zabraniu/dołożeniu jakiegoś węzła, dalej jesteś w podanym zakresie rezystancji całkowitej, jest ok.

Topologia sieci

CAN High-Speed

Tutaj sprawa jest prosta: topologia jest zawsze liniowa. To znaczy, iż magistrala ma kształt długiej linii, do której dołączane są kolejne węzły, w dowolnym miejscu:

CAN Low-Speed

Tutaj mamy więcej możliwości.

Topologia sieci może być liniowa (zauważ brak rezystorów na magistrali):

może być również w “gwiazdę”:

a także mieszana:

Jak połączyć ogień z wodą?

No dobra, to porównanie jest przesadzone. Ale jeżeli chcemy np. podsłuchać sieć low-speedową dzięki interfejsu high-speedowego, musimy zacząć od zdjęcia rezystorów terminujących. Lub po prostu o nie zakładanie ich pomiędzy przewody CAN-High i CAN-Low.

Zdarza się, iż taki zabieg wystarczy, by pojawiła się działająca komunikacja.

Jeśli to nie pomoże, pozostało jedna sztuczka, którą można zastosować: pull-down linii CAN-Low, czyli dołożenie rezystancji pomiędzy przewód CAN-Low a GND:

Po co taki dziwny zabieg?

Jeśli wrócisz sobie do grafiki z poziomami napięcia, zauważysz, iż “ściągnięcie w dół” potencjału CAN-Low przybliży nas do poziomów odpowiednich dla CAN High-Speeda.

Jaka powinna być wartość tej rezystancji?

W moim przypadku zadziałał rezystor 60 Ohm, ale możesz poeksperymentować (najłatwiej dzięki potencjometeru o zakresie liniowym) i obserwować, kiedy zadziała…. albo nie zadziała, nie ma gwarancji.

Możesz również rzucić okiem na to jak ja to zrobiłem na poniższym nagraniu:

Idź do oryginalnego materiału