logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Analiza komunikacji między nawigacją a ekranem w Volvo przez Logic i analizator logiczny

costa 12 Kwi 2021 20:28 651 3
REKLAMA
  • #1 19375773
    costa
    Poziom 10  
    Za pomocą prostego analizatora logicznego oraz oprogramowania Logic próbuję podsłuchać komunikat, który jest cyklicznie wysyłany (co 100ms) z jednego urządzenia do drugiego (RTI, z nawigacji/napędu DVD do ekranu, w Volvo).

    Do rzeczy... Wszystko po to, by samodzielnie wysterować sam ekran. Wysterowanie ekranu sprowadza się do ustalenia, czy ma być zamknięty, czy otwarty i które źródło video ma być aktywne oraz do sterowania jasności ekranu.
    W internecie można znaleźć już "rozkminiony" powyższy protokół: np. za pomocą arduino, ustawiając port szeregowy na prędkość 2400 (pozostałe parametry domyślne, czyli 8N1) można wysłać 3 bajty:
    0x83,
    0x40 (tu mogą się pojawić jeszcze 3 inne wartości),
    0x40 (tu może się pojawić jeszcze 15 innych wartości).

    No i to działa.

    Ja jednak chciałem bardziej zgłębić temat i podejrzeć jak wygląda komunikacja pomiędzy dedykowaną nawigacją a ekranem. No i nie bardzo się to pokrywa z powyższą rozkminką. Aplikacja Logic pokazuje 5 bajtów, choć 2 z nich uszkodzone(?), a ich wartości tych "dobrych" nie bardzo się pokrywają z tymi 3 działającymi.
    Próbowałem chyba wszystkich kombinacji parametrów protokołu w Logic (liczba bitów stopu, parzystości, znaczący bit, MDB...) i nadal nie widzę w tym sensu. Nie mówiąc o próbie nadania takiego komunikatu z arduino.

    Analiza komunikacji między nawigacją a ekranem w Volvo przez Logic i analizator logiczny

    Komunikat na obrazku daje dokładnie taki sam efekt (otwarcie ekranu z wejściem RGB) jak wysłanie komunikatu 3 bajtowego, który opisałem wyżej (oczywiście jak podsłucham komunikację w Logic, na takich samych ustawieniach, widzę dokładnie to, co wysyłam, czyli 3 bajty).

    Nie mam w tej kwesti doświadczenia. A wy co o tym sądzicie?
  • REKLAMA
  • Pomocny post
    #2 19376070
    alecki99
    Poziom 16  
    Jeśli przyjąć, że transmisja ma parametry 9N1, to kolejne słowa z obrazka to 0x185 0x140 0x000 0x000 0x108. O ile czasówki są takie że zmieści się bit startu i stopu, na obrazku nie widać.
  • REKLAMA
  • Pomocny post
    #3 19376145
    __Grzegorz__
    Poziom 30  
    to wygląda na zwykłe 8E1 (8 bit danych, parzystości tak aby w sumie była parzysta liczba bitów, no i bit stopu...)...
  • #4 19377598
    costa
    Poziom 10  
    alecki99 napisał:
    Jeśli przyjąć, że transmisja ma parametry 9N1, to kolejne słowa z obrazka to 0x185 0x140 0x000 0x000 0x108. O ile czasówki są takie że zmieści się bit startu i stopu, na obrazku nie widać.


    Tak, jak tak ustawię parametry w Logic, nie zgłasza błędu ramki.
    Ale wszystko wskazuje, że
    __Grzegorz__ napisał:
    to wygląda na zwykłe 8E1 (8 bit danych, parzystości tak aby w sumie była parzysta liczba bitów, no i bit stopu...)...


    Ustawienie parametrów w Logic nie zgłasza błędów. Ale ale! Wymuszenie takich parametrów w arduino (bo domyślnie jest 8N1) i wysłanie dokładnie takiej samej sekwencji powoduje oczekiwany efekt - otworzenie ekranu z RGB!

    Zatem wszystko jasne: 8E1, 2400. No i wynika z tego, że dwoma różnymi komunikatami (3 bajty i 5 bajtów) można osiągnąć to samo.
    Dzięki.
REKLAMA