Skocz do zawartości

Szyna CAN i rózne prędkości


Pomocna odpowiedź

Napisano

cześć.

Mam krótkie pytanie.

Czy na szynie CAN mogą jednocześnie pracować urządzenie o np dwóch rożnych prędkościach? dla przykładu urządzania A i B komunikują sie z prędkością 125kps a urządzenia C i D z prędkością 500kps?

Nie wiem czy standard w ogóle dopuszcza coś takiego. No nie mogę tego znaleźć w żadnym opisie.

To znajdź rozdział o sposobie arbitrażu dostępu do medium i wyciągnij z niego wnioski. Inne prędkości transmisji będą skutkować niepoprawnym arbitrażem (priorytetami niezgodnymi z adresami węzłów), całą masą błędów w węzłach nasłuchujących oraz być może próbami nadawania tzw. error frame co jeszcze pogorszy sprawę.

A poza tym, po co w ogóle o tym myślisz? Możesz przecież podłączyć węzeł do magistrali i użyć trybu autobaud (z zablokowanym nadajnikiem) by "wstrzelić" się za którymś razem w prawidłową prędkość. Zwykle do wyboru jest tylko kilka (np. 125, 250 i 500k) więc chyba nie jest to jakiś wielki problem.

O autobaud nie wiedziałem ze mozna. Możesz jak z tego skorzystać? Da sie na stm32?

Podpiołem sie pod taka szynę ktora jest can i nie moge uzyskac stabilnych dlugosci bitow. Pomyslam ze moze w tym ukladzie sa razne predkosci. Tak przy najmniej wychodzi jak podłącze po analizator stanow logicznych

Posłużę się cytatem z odpowiedniego Reference Manual:

31.5.1 Silent mode

The bxCAN can be put in Silent mode by setting the SILM bit in the CAN_BTR register.

In Silent mode, the bxCAN is able to receive valid data frames and valid remote frames, but

it sends only recessive bits on the CAN bus and it cannot start a transmission. If the bxCAN

has to send a dominant bit (ACK bit, overload flag, active error flag), the bit is rerouted

internally so that the CAN Core monitors this dominant bit, although the CAN bus may

remain in recessive state. Silent mode can be used to analyze the traffic on a CAN bus

without affecting it by the transmission of dominant bits (Acknowledge Bits, Error Frames).

W tym trybie możesz wielokrotnie resetować i przestawiać swój interfejs CAN na różne prędkości aż do uzyskania odbioru prawidłowych komunikatów.

Analizator stanów logicznych nie jest narzędziem do podglądania takich magistral jak CAN. Przecież obie linie - gdy są nieużywane - "parkują" się pasywnie na 2.5V - co wtedy pokazuje Twój sprzęt? Albo zrób sobie normalny odbiornik różnicowy zgodny ze standardem albo chociaż podepnij dwa kanały oscyloskopu i odejmuj wbudowaną matematyką by uzyskać jednoznaczny sygnał.

Do magistali mialem podpięty mcp2551 a analizator to sluzym mi tylko do wyznaczenia predkosci transmisji

a nie do badania protokołów. To byłby horror tak sobie analizowac

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...