Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Magistrala CAN wysłanie i odczyt danych

cyber90 08 Sty 2013 20:53 3651 5
  • #1 08 Sty 2013 20:53
    cyber90
    Poziom 15  

    Poszukuję informacji jak ustawia się filtry i maski aby wysłać bądź odczytać wiadomość w kontrolerze CAN. Najlepiej jakieś materiały po polsku. Jeżeli ktoś może to niech napisze jak to działa. Bądź jakiś link do strony pl.

    0 5
  • #2 09 Sty 2013 19:18
    Pyngwin
    Poziom 9  

    Na jakim etapie jesteś i w czym dokładnie problem? PICa podpinasz bezpośrednio pod CAN czy jeszcze coś po drodze? Generalnie CAN to transmisja szeregowa po dwóch kablach.

    0
  • #3 14 Sty 2013 19:19
    cyber90
    Poziom 15  

    chodzi o wyjasnienie do czego sluza maski i filtry teoretycznie narazie np na jakims przykladzie. z tego co wiem to dzieki nim mozemy ustawic jakie ramki o jakim identyfikatorze sa odbierane. o magistrali can juz sporo wiem jak odbywa sie transmisja ze mamy bity dominujace i recesywne itd. prosze o opisanie moze to byc na przykladzie kontrolera mcp2515 ale lepiej na uc pic , tez prosil bym o wyjasnienie tych buforow bo do konca nie znalazlem odpowiednich informacji. pozdrawiam

    0
  • #4 15 Sty 2013 10:43
    cyber90
    Poziom 15  

    Znalazłem taki przykład ale po angielsku i nie wiem czy do końca rozumiem;
    Chcę tak ustawić filtr aby odbierać tylko identyfikatory 1, 2 i 3 a nie 4:
    ID1 = 00000000001
    ID2 = 00000000010
    ID3 = 00000000011
    ID4 = 00000000100

    Jeżeli ustawimy maskę filtru na:
    Mask = 11111111100
    Spowoduję że będą ignorowane dwa najmniej znaczące bity.

    I teraz filtr jest ustawiony na:
    Filter = 00000000000
    Zgodnie z zasadą że bit dominujący "0" nadpisuje recesywny "1" to przepuszczane, czyli odczytywane są tylko identyfikatory 000000--. Bo zera w filtrze przysłoniły jedynki w masce. Tak to działa?
    A chcąc odebrać jeden identyfikator np 11.
    ID4 = 00000001011

    To ustawiamy tylko filtr na:
    Filtr =0000001011
    a maskę:
    Maska = 11111111111
    bo w przypadku gdy maska będzie
    Maska = 11111110100
    to przepuszczane będą identyfikatory:
    0 , 1, 2, 3, 8, 9, 10, 11. ??

    0
  • #5 15 Sty 2013 14:10
    grisha75
    Poziom 12  

    Maski i filtry to jedno co jest niezbędne, ale jak chcesz zrobić profesjonalne oprogramowanie na CAN, w którym pracują różne nieznane ci urządzenia, to musisz mieć perfekcyjny i niezawodny stos, bo bez tego nie obsłużysz prawdziwej sieci, a jedynie stworzysz "zabawkę" z CAN.

    0
  • #6 15 Sty 2013 16:57
    Marico
    Poziom 19  

    Spójrz w tabelkę poniżej.

    $$
    \begin{tabular}{| c| c| c|c| }
    \hline
    Mask & Filter & Message\ bit & Accept\ or\ reject \\
    \hline
    0 & x & x & Accept \\
    \hline
    1 & 0 & 0 &Accept \\
    \hline
    1 & 0 & 1 &Reject \\
    \hline
    1& 1&0 &Reject \\
    \hline
    1&1&1&Accept
    \hline
    \end{tabular}
    $$

    0