Przeczytano 557 razy

Magistrala CAN

Witam społeczność,

ciekawi mnie w jaki sposób w CANie została rozwiązana następująca sytuacja: załóżmy, że na początku na całej linii jest cisza (czyli na CANH i CANL jest to samo napięcie 2.5V względem masy), i nagle cała sieć jest uruchamiana, co wiąże się z tym że wiele urządzeń jednocześnie chciałoby coś nadać przez tą sieć. No i tu pojawia się problem, ponieważ mimo istnienia mechanizmu arbitrażu oraz bitów dominujących i recesywnych ustalających priorytet dla urządzenia nadającego ramkę, to jednak wszystkie urządzenia w danej chwili muszą wiedzieć czy mają najwyższy priorytet czy jednak niższy (słowem czy mają siedzieć cicho czy mogą zacząć gadać :)). I tutaj pojawia się moje pytanie: skoro w całej sieci wszystkie urządzenia są równe względem siebie, czyli każde jest Masterem, to w jaki sposób dane urządzenie spośród tysięcy innych na linii określa, że to akurat ono ma największy priorytet w komunikacji i vice versa?

Odpowiedzi (3)


    • Ostatnia wizyta:
    • W serwisie od:
    • 56 pytań
    • 1174 odpowiedzi
    • 99.7% pozytywnych ocen od użytkowników

    Na początku, gdy sieć jest "cicha" (napięcia 2,5V na CANH i CANL — stan "recesywny"), każde urządzenie, które chce nadać, zaczyna wysyłać swoją ramkę.

    Każda ramka rozpoczyna się od bitu start of frame (SOF), który jest dominujący (czyli CANH idzie do ok. 3,5V, a CANL do ok. 1,5V). To budzi inne węzły do życia i synchronizuje je.

    Wszystkie urządzenia zaczynają równocześnie nadawać swój identyfikator (ID ramki). Kluczowe jest, że transmisja odbywa się bit po bicie, a jeśli któreś urządzenie nada bit recesywny (logiczne 1), ale "usłyszy" na magistrali bit dominujący (logiczne 0), musi natychmiast przestać nadawać.W CAN im niższy numer ID, tym wyższy priorytet ramki.

    Najbardziej krytyczne ramki (np. o bezpieczeństwie) mają najniższe ID i zawsze wygrywają.

    Urządzenia same deterministycznie ustalają, kto mówi, bez potrzeby centralnego "mastera".


      • Ostatnia wizyta:
      • W serwisie od:
      • 29 pytań
      • 664 odpowiedzi
      • 96.5% pozytywnych ocen od użytkowników

      @Szymon028: autor pytania założył w pytaniu sytuację gdzie wszystkie urządzenia są równe wobec siebie. Ale czy tak to w ogóle działa? To nie jest tak, że każde urządzenie będzie miało inną wartość bitową ?


        • Ostatnia wizyta:
        • W serwisie od:
        • 56 pytań
        • 1174 odpowiedzi
        • 99.7% pozytywnych ocen od użytkowników

        @Sebastian Łyźniak: Jeśli instalator nie ustawi priorytetów to urządzenia same je sobie przypiszą co w przypadku krytucznej infrastruktury może być niebezpieczne i wydłużyć czas działania najbardziej kluczowych elementów. W rzeczywistości nie wystąpi sytuacja gdzie duża grupa będzie miała ten sam priorytet.

Czytaj także:

Jaki przewód do magistrali KNX?
Społeczność

Jaki przewód do magistrali KNX?

Potrzebuje kabel / przewód magistrali do KNX. Co proponujecie?

Więcej
Zabezpieczenie dla Łącznik magistrali EtherCat
Społeczność

Zabezpieczenie dla Łącznik magistrali EtherCat

Dzień dobry. Miałem smutną sytuację- spalilo mi w pracy Łączni

Więcej
Modbus RS485
Społeczność

Modbus RS485

jakie jest wasze zdanie w kwestii zakańczania krótkiej magistrali R

Więcej
Aktualny system normalizacji w Polsce w obszarze elektryki
Blog

Aktualny system normalizacji w Polsce w obszarze elektryk

W środowisku elektryków skupionych w Stowarzyszeniu Elektryków Pols

Więcej
Domowy system monitoringu krok po kroku
Blog

Domowy system monitoringu krok po kroku

Chcesz samodzielnie uruchomić system monitoringu wizyjnego do użytk

Więcej
Kabel czy radio?
Blog

Kabel czy radio?

Czy komunikacja przewodowa jest naprawdę bardziej niezawodna i bezp

Więcej