Skocz do zawartości

Sterowanie silnik reluktancyjnego turbosprężarki audi SQ7


Dudaczi

Pomocna odpowiedź

Witam, posiadam elektryczną turbosprężarkę z Audi SQ7 , problem w tym że aby wysterować to urządzenie przy jak najmniejszej ingerencji w urządzenie najprawdopodobniej trzeba podać odpowiednie bramki na magistrale CAN . Narazie udalo mi się rozebrać przednią pokrywę, to co udało mi się ustalić to uC który jest mózgiem całego urządzenia to SPC560P50L3. Jedno z rozwiązań które nasuwa mi się na myśl to czy jest możliwość np. za pomocą oscyloskopu sczytania ramek a następnie adaptacji zewnętrznego uC pokroju Arduino , tak by móc sterować załączeniem i wyłączeniem silnik oraz regulacją obrotów. Wszelkie sugestie i pomysły mile widziane, wrzucam poniżej zdjęcie płytki, postaram się dostać do modułu poniżej, czyli jak zakładam elementu wykonawczego w postaci Mosfetów etc. 

20211201_162558[1].jpg

Edytowano przez Dudaczi
Link do komentarza
Share on other sites

Zasiliłem układ napięciem 12V , 2 skrajne piny to najprawdopodobniej zasilanie sterownika, a 2 środkowe to CAN do komunikacji, po podaniu napięcia na szynie CAN ( Miedzy H i L pojawia się napięcie ok 2,5 V, które pod ok 3 sekundach spada do 0 czyli przechodzi w stan uśpienia ( niestety nie posiadam oscyloskopu aby móc sprawdzić przebieg ramek). Tutaj zadaje sobie pytanie,czy jest możliwość aby zastosować arduino z shieldem CAN , aby sprawdzić same ramki ( z tego co się zdążyłem doszkolić to jest to możliwe) tylko teraz rodzi się pytanie czy tylko za pośrednictwem samych ramek które przesyła sterownik będę w stanie nadać ramki które go uruchomią ? Wiadomo że najłatwiejszym sposobem było by podsłuchanie ramek komunikacyjnych między ECU a sterownikiem e-turbo, natomiast nie mam takiej możliwości dostępu do tego modelu auta.

 633999081_20211203_1301171.thumb.jpg.6fc3163d582ab7adcb2cb5cba4c68ee1.jpg

Link do komentarza
Share on other sites

Z mojego doświadczenia z canem mogę podpowiedzieć że:

1. Możesz użyć dowolnego Arduino i płytki mcp2515. Połączenie tego mega proste. Podpinasz do płytki can przewody z tego sterownika i przy pomocy kilku linijek kodu sniffujesz cały ruch na can. Mogę pomóc z połączeniem i kodem.

2. Nawet jesli to się uda i odczytasz jakieś ramki - nie wiaodmo jakie ramki trzeba wysłać do sterownika żeby go uruchomić.

3. Sterownik sam z siebie na 90 procent nie nada żadnych ramek. W momencie podłączenia on czeka na ruch na can. Jeśli go nie ma - przechodzi w uśpienie. W momencie otrzymania odpowiedniej ramki can wybudza się i już normalnie działa.

Według mnie bez sniffowania ramek w aucie ( np przez obd jesli gateway auta puszcza cały ruch can na obd ) raczej nikłe szanse na ustalenie odpowiednich ramek.

 

P.S moim zdaniem pomocy powinieneś szukać na forum vaga.

 

Edytowano przez cezarg1410
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

2 godziny temu, cezarg1410 napisał:

Według mnie bez sniffowania ramek w aucie ( np przez obd jesli gateway auta puszcza cały ruch can na obd ) raczej nikłe szanse na ustalenie odpowiednich ramek.

Można spróbować w sieci, ale to raczej mało prawdopodobne.

Dodam tylko, że często ramki są stałe przez kilka-kilkanaście lat (bo komu chciałoby się aktualizować urządzenia testujące). Np. sterowanie lampami z Mercedesa S-Klasy działa również na innych modelach. Oczywiście każda marka ma swoje ramki, ale część jest w sieci i można próbować coś znaleźć... Ewentualnie jak masz jakiś serwis / przyjaciela w serwisie aut w US może on dostać te dane, bo o ile pamiętam USA wprowadziło wymóg dostarczania danych do napraw pojazdów, ale nie wiem dokładnie na jakich zasadach.

Link do komentarza
Share on other sites

1 godzinę temu, H1M4W4R1 napisał:

Dodam tylko, że często ramki są stałe przez kilka-kilkanaście lat (bo komu chciałoby się aktualizować urządzenia testujące)

Tak. I są często i gęsto wspólne między wieloma modelami budowanymi na tych samych "platformach" elektronicznych.

Dlatego zaleciłem forum vaga. To jest jakiś punkt zaczepienia. Znajdujesz pomysły na ramki a potem szukasz już sam.

Natomiast i tak marne szanse - ludzie szukają ramek ale dotyczących multimediów czy pidow obd bo z tego da się wyczarować fajne mody w aucie. A komunikacja z takim sterownikiem... No marne szanse.

Link do komentarza
Share on other sites

Temat może na 2 zagranicznych forach był wałkowany, jednak nic z niego nie wynikło, Jedynie doczytałem się w komentarzach, pod filmikiem Profesora Chrisa iż , udało się go uruchomić, ale tylko na zasadzie ON/OFF, niestety nie jestem w stanie się z nim skontaktować aby się chociaż dowiedzieć w jaki sposób to osiągnął, natomiast zależy mi na tym by jednak uruchomić to przez CAN, ponieważ sterownik pewnie jest odpowiednio zaprogramowany i zoptymalizowany co do wysterowania akurat tego modelu turbiny ( tworzenie sterownika pod ten silnik relukatancyjny od podstaw byłoby chyba zbyt pracochłonne, dodatkowym atutem jest to że łatwo by było też zaimplementować taki sterownik CAN poprzez właśnie arduino i MCP2515 które wpinamy i pozwalają bez większych ingerencji uruchomić te e-turbo ,  dało by to też możliwość dalszego rozwoju sterowania  ( czy to na zasadzie wartości ECU, regulacja PID w zależności od ciśnienia , czy zwykłych jak poprzez potencjometr,czy choćby najprostsza opcja ON/OFF itd. Ap-ropo ramek, są jakieś service manuale , w których można by się było dokopać takich informacji ? SQ7 jest takim trochę egzotycznym samochodem więc za wiele informacji na jego temat nie ma. Chciałbym pierw zaczerpnąć wiedzy z łatwo dostępnych mediów , natomiast ostatecznością pozostawić sniffing na pojeździe ( wypożyczenie auta trochę kosztuje,poza tym nie wiem co na to wypożyczalnia, gdyby się dowiedziała że ktoś coś majstruje pod maska..) a pewności też nie ma czy np. dana turbina nie jest zakodowana pod dany model pojazdu, a adaptacji można tylko dokonać mając odpowiedni sprzęt.

Link do komentarza
Share on other sites

(edytowany)

https://procarmanuals.com/vag-ssp-651-audi-sq7-type-4m/ udało mi się wyszperać takiego mauala, od 40 strony jest rozpiska topologi komunikacji poszczególnych podzespołów. w kolejnym manualu dotyczącym silnika https://procarmanuals.com/vag-ssp-652-audi-4-0l-v8-tdi-engine-ea898-series/ pokazany jest diagram komunikacji poszczególnych jednostek z ECU , sub-bus to rozumiem że jest to rodzaj komunikacji, tylko w pewien sposób bardziej rozwinięty niż sam CAN ?

 

struktura sieci Audi Sq7.png

Edytowano przez Dudaczi
Link do komentarza
Share on other sites

Widzę , że temat ucichł, zastanawia mnie jeszcze jedna kwestia, a mianowicie, czy dało by rade połączyć cię z SPC560P50L3 i pobrać jego program , a następnie rozczytać w jakiś sposób komunikacje i sterowanie, coś na zasadzie inżynierii wstecznej , wszelkie pomysły  i propozycje mile widziane.

Link do komentarza
Share on other sites

31 minut temu, Dudaczi napisał:

Widzę , że temat ucichł, zastanawia mnie jeszcze jedna kwestia, a mianowicie, czy dało by rade połączyć cię z SPC560P50L3 i pobrać jego program

Kiedyś była luka w architekturze mikrokontrolerów pozwalająca na "wbicie" się programatorem przed bootem samego MCU (w trakcie bootowania zanim zablokuje możliwość odczytu danych). Więc teoretycznie powinno być to możliwe, tylko nie jest to proste zadanie do wykonania...

Po pierwsze trzeba sprawdzić czy ten mikros jest podatny na taki atak, po drugie trzeba się wstrzelić w wąskie okienko czasu, po trzecie trzeba mieć programator dla ARM'ów... No i znaleźć miejsce, gdzie są piny od debugowania... Łatwiej byłoby się wpiąć w działający układ ze sterownikiem i "podsłuchać" komunikację między komputerem, a silnikiem, potem to przefiltrować testując "na stole" ramka po ramce co się zmienia (np. CanHacker'em zrobionym z Arduino). Czasochłonne, ale to najskuteczniejsze rozwiązanie.

Link do komentarza
Share on other sites

Jedynie co wynalazłem to resetowanie błędu airbagów na sterownikach o tym samym uC, tylko zastanawia mnie to czy odczytane wartości ( a jak dobrze widzę jest to w formie systemu szesnastkowego) będę w stanie jakoś rozczytać, bo taki airbag to rozumiem że przerzucają program z ,,zdrowego modułu" do tego po wystrzale. Chyba że jest jakaś możliwość rozszyfrowania takiego programu, tak by wiedzieć co odpowiada za uruchomienie i sterowanie obrotami tak zaprogramowane uC turbosprężarki?

Wrzucam przykładowy filmik:

 

Link do komentarza
Share on other sites

8 godzin temu, Dudaczi napisał:

Jedynie co wynalazłem to resetowanie błędu airbagów na sterownikach o tym samym uC, tylko zastanawia mnie to czy odczytane wartości ( a jak dobrze widzę jest to w formie systemu szesnastkowego) będę w stanie jakoś rozczytać, bo taki airbag to rozumiem że przerzucają program z ,,zdrowego modułu" do tego po wystrzale.

Jak znajomy robi lampy samochodowe po CAN'ie to zwykle najpierw włącza zapłon (co by lampy działały, bo czasem tego wymagają). Potem robi sobie znaczniki czasowe  przed każdą sprawdzaną rzeczą - kierunkowskazy, drogowe, mijania itp. I przełącza kilkanaście razy. Potem sobie grupuje komendy np. po 3 zestawy komend po znacznikach mijania. I testuje metodą "na chama"

8 godzin temu, Dudaczi napisał:

Chyba że jest jakaś możliwość rozszyfrowania takiego programu, tak by wiedzieć co odpowiada za uruchomienie i sterowanie obrotami tak zaprogramowane uC turbosprężarki?

Program z uC da się zdekompilować, ale to sporo zachodu i musisz być bardzo dobry z Assemblera (bo programy do dekompilacji nie są górnych lotów)...

Edytowano przez H1M4W4R1
Link do komentarza
Share on other sites

mając chwile czasu poskładałem sniffera, po podłączeniu go do sprężarki odczytałem takie ramki jak na poniższym zdjęciu , zastanawiam się czy dało by rade złamać to metodą brute force, ogólnie nadawanie trwa ok 1s po czym sprężarka tak jakby przechodzi w stan uśpienia ( nic nie wysyła) i zastanawiam się czy to nie jest taki czas buforu w którym jeżeli jej się nie uda połączyć to automatycznie przechodzi w stan awarii etc ?

Porównanie.png

rozszerzony.png

Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.