piątek, 8 października 2010

Diagnostyka samochodowa (2)

Niestety pierwsza próba stworzenia mojego interfejsu pod USB zakończyła się porażką. Tak jak się spodziewałem konwertery i samo przesyłanie danych USB do UART wprowadzają pewne losowe opóźnienia i ciężko jest w ten sposób zainicjować poprawnie komunikacje z ECU. Ponieważ nie posiadam w tym momencie oscyloskopu (planuje kupić używany oscyloskop analogowy lub w ostateczności złożyć samemu jakąś zabawkę), nie potrafię w tym momencie nawet dokładnie powiedzieć jakiego rodzaju są to przesunięcia i zakłócenia. Najprostszym rozwiązaniem byłoby wstawienie mikro-kontrolera który zadbałby o właściwą synchronizacje. Chciałbym jednak najpierw zobaczyć jak to wszystko wygląda pod oscyloskopem, więc na razie interfejs na USB odkładam do szuflady.

Oczywiście nie oznacza to, że nie próbowałem zdobyć informacji na temat czujników na inne sposoby :)

Zdobyłem kompletną dokumentacje do kontrolerów stosowanych w różnych markach samochodów. Dzięki temu pewnie uda mi się w końcu połączyć z samym sterownikiem wyciągniętym z jakiegoś wraka. Podając odpowiednie impulsy na jego wejścia również będę w stanie określić w jaki sposób odczytywać wartości z jego czujników. Jest to jednak droga kosztowna, dlatego tymczasem próbuje jeszcze inaczej :)

Idea jest taka żeby stworzyć emulator ECU pracujący na komputerze do którego będą się łączyć programy diagnostyczne. Dzięki takiemu emulatorowi byłbym w stanie na bieżąco modyfikować wartości czujników i w ten sposób dowiedzieć się wszystkiego czego potrzebuję :)

Taki emulator udało mi się napisać w miarę szybko a dzięki wirtualnym portom COM wszystko można zrobić na jednym komputerze, bez potrzeby spinania dwóch maszyn kabelkiem Null-modem. Oczywiście znowu pojawiają się tutaj pewne problemy ale już zupełnie innej natury :/

Problem oczywiście leży w samych programach diagnostycznych. Autorzy takich programów wymuszają na użytkowniku kupienie interfejsu swojej produkcji i z innymi program nie chce współpracować, a tym bardziej nie można ustawić komunikacji przez zwykły port COM. Wygląda na to, że w sieci do Opla dostępne są tylko dwa programy: AutoScanner i OP-COM. Przy czym AutoScannera narazie nie używałem.

Z OP-COM jest sprawa o tyle ciekawa, że w sieci krąży jego beta wersja (Opel Tech2) nie zawierająca w ogóle odczytu czujników oraz wersja crackowana znana jako AB-COM.

Opel tech2 nie nadaje się więc do użycia a sporo użytkowników go poleca na forach :) Zresztą przeczytajcie tutaj sami co napisał autor programu. Natomiast AB-COM wygląda na to, że źle odczytuje bloki pomiarowe. Nie pokazuje mi napięcia z sondy Lambda, a inne wartości też nie zgadzają się do końca.

Jest jeszcze dostępne demo OP-COM, ale jak na razie nie chce "współpracować" :P Wersja demo jest spakowana programem Pecompact, który na szczęście da się łatwo wypakować. Być może głębsze wniknięcie w kod programu rozwiąże ten problem. Z tego powodu kod źródłowy emulatora zamieszczę dopiero za jakiś czas, po rozwiązaniu tego typu problemów. Być może dodam do niego funkcje emulacji któregoś z interfejsów współpracujących z OP-COMem.