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

ELM327 i nie tylko - amatorskie interfejsy i oprogramowanie diagnostyczne

tzok 07 Maj 2014 22:39 28212 0
  • #1
    tzok
    Moderator Samochody
    Temat jest wykazem amatorskiego ale wyłącznie dedykowanego oprogramowania/interfejsów diagnostycznych (bez tzw. generic OBD-II/EOBD). Jako granicę cenową sprzętu amatorskiego przyjąłem 500€. Wpisy w formie "nazwa (link): interfejs, licencja, cena".
    Żadnych klonów, tylko oryginalny sprzęt i legalne oprogramowanie!

    Przed podjęciem ostatecznej decyzji o ewentualnym zakupie wskazanego tu oprogramowania należy bezwzględnie upewnić się czy dany program/interfejs na pewno obsługuje wasz samochód, gdyż to iż program jest przeznaczony np. do samochodów marki FIAT nie oznacza, że obsługuje 100% modeli i wersji silnikowych samochodów wyprodukowanych przez ten koncern. Nie biorę żadnej odpowiedzialności za niewłaściwe decyzje w kwestii doboru interfejsu/oprogramowania do samochodu.

    Proszę pamiętać!
    Diagnostyka komputerowa umożliwia podgląd wartości mierzonych przez ECU, wysterowanie elementów wykonawczych, którymi ECU może sterować oraz stwierdzenie usterek elektrycznych (typu przerwa/zwarcie w obwodzie lub nieoczekiwana/niemożliwa wartość zmierzona). Nie pozwala zatem na "sprawdzanie" podzespołów mechanicznych. Doświadczony diagnosta (znający zasadę działania badanego podzespołu oraz algorytm sterujący) może jedynie stwierdzić fakt ich niesprawności na podstawie zaburzeń w odczytach z dostępnych czujników.


    ***

    Uzupełnienie

    Czym właściwie jest interfejs i oprogramowanie diagnostyczne?
    Interfejs umożliwia elektryczne połączenie komputera PC i sterowników w samochodzie. W starszych samochodach każdy sterownik miał swoje złącze diagnostyczne, ulokowane na wiązce elektrycznej, w pobliżu sterownika. Obecnie standardem jest zintegrowane gniazdo diagnostyczne wszystkich systemów w standardzie OBD-II.

    Teoretycznie interfejs jest tylko konwerterem na poziomie warstwy fizycznej (impulsy elektryczne, bity). Tak działały interfejsy KKL (np. popularny klon interfejsu sprzedawany jako VAG-COM 409.1). W przypadku takich interfejsów za całość komunikacji odpowiada oprogramowanie na komputerze PC, dzięki czemu w oprogramowaniu diagnostycznym można zaimplementować obsługę dowolnego protokołu i dowolnego sterownika.

    Nieco bardziej zaawansowane interfejsy posiadają zintegrowany mikrokontroler z wbudowanym oprogramowaniem pełniącym funkcje interpretera protokołu diagnostycznego. Przykładem takich interfejsów są "kable" oparte o układ ELM327 czy STN1110 (które tak naprawdę są standardowymi mikrokontrolerami z odpowiednim oprogramowaniem). W przypadku tego typu interfejsów, oprogramowanie na PC nie musi zajmować się inicjalizacją transmisji, formowaniem ramek czy obliczaniem sum kontrolnych - słowem niczym należącym do protokołu diagnostycznego. Wysyła jedynie żądania i przetwarza odpowiedzi. Pewną wadą takiego rozwiązania jest brak możliwości pracy z nowymi/nietypowymi protokołami diagnostycznymi. Choć te "kable" są uniwersalne to są ograniczone protokołami diagnostycznymi, które ma zaimplementowane ich wewnętrzne oprogramowanie.

    Najbardziej zaawansowane interfejsy diagnostyczne mają zaimplementowaną nie tylko obsługę samych protokołów diagnostycznych ale również kompletne procedury diagnostyczne dla poszczególnych sterowników. W ich przypadku oprogramowanie na PC pełni jedynie funkcje terminala/przeglądarki wyników. Przykładami takich interfejsów są praktycznie wszystkie profesjonalne interfejsy, jak np. Delphi DS150 czy BOSCH KTS520. Takie podejście w głównej mierze ma za zadanie ograniczenie piractwa.
    Wariantem pośrednim są interfejsy zawierające prosty mikrokontroler będący translatorem protokołu oraz kluczem sprzętowym do oprogramowania na PC, np. HEX-CAN (czyli interfejs do programu VCDS), czy OP-COM.

    Czy interfejs/oprogramowanie diagnostyczne faktycznie wykonuje diagnostykę podzespołów w samochodzie?
    Nie, interfejs i oprogramowanie służy jedynie wywoływaniu odpowiednich procedur w sterownikach samochodu i odpowiednim interpretowaniu zwracanych przez nie danych. Można odczytywać tylko takie parametry i wykonywać tylko takie procedury testowo-adaptacyjne jakie uwzględnił producent sterownika w jego oprogramowaniu. W dużym uproszczeniu można to opisać tak:
    - Użytkownik w programie zaznacza, że chce odczytać temperaturę silnika,
    - Oprogramowanie diagnostyczne (albo na PC albo po stronie interfejsu) tłumaczy to na odpowiednie żądanie, typu "parametr 5, tryb 1".
    - Oprogramowanie interfejsu inicjuje połączenie ze sterownikiem i odpowiednio koduje to żądanie, formując tzw. ramkę.
    - Ramka jest przesyłana do sterownika silnika, który ją dekoduje, a następnie wysyła analogicznie zakodowaną odpowiedź.
    - Interfejs odbiera odpowiedź.
    - Oprogramowanie ją dekoduje, sprawdzając przy okazji poprawność transmisji.
    - Zdekodowaną odpowiedź trzeba jeszcze zinterpretować, przypuśćmy, że zdekodowana odpowiedź to pojedynczy bajt, czyli wartość 0-255. Konieczne jest więc przeskalowanie jej na temperaturę (czyli wykonanie na niej pewnych operacji arytmetycznych). W tym przypadku to standardowe żądanie OBD-II i formuła konwersji jest wspólna dla każdego sterownika zgodnego z tą normą (czyli od zwróconej wartości trzeba odjąć liczbę 40).

    Czy Każdy sterownik zgodny z OBD-II obsługuje te same procedury diagnostyczne?
    Nie, standard OBD-II definiuje jedynie pewien zbór obligatoryjnych, standaryzowanych parametrów, głównie związanych z emisją zanieczyszczeń. Każdy producent wprowadza szereg dodatkowych parametrów diagnostycznych. Często wiele z nich dubluje parametry standardowego zbioru OBD-II ale np. mają większą rozdzielczość. W kontekście procedur diagnostycznych standard OBD-II dotyczy jedynie sterownika silnika, pozostałe sterowniki obsługują własne, niestandaryzowane procedury diagnostyczne (choć do komunikacji wykorzystują standardowe protokoły).

    ***

    ELM327
    ELM327 to jeden z bardziej popularnych wśród amatorów interfejsów diagnostycznych. W praktyce większość korzysta z chińskich klonów ELM327 lub nieco nowszego STN11x0 (oryginalny interfejs na tym układzie to OBDLink SX). ELM327 obsługuje następujące protokoły komunikacyjne: SAE J1850 PWM, SAE J1850 VPW, ISO 9141-2, ISO 14230-4 KWP, ISO 15765-4 CAN, ISO 15765-4 CAN, SAE J1939. Komunikacja z samym ELM/STN odbywa się z wykorzystaniem terminala szeregowego (UART) i poleceń AT (STN posiada dodatkowo rozszerzony zestaw poleceń ST). Interfejsy występują w wariantach USB, BT oraz WiFi. Do "poważnych" zastosowań najlepiej nadaje się wersja USB, wersja BlueTooth, w ograniczonym zakresie, działa z oprogramowaniem na PC (poprzez wirtualny port szeregowy BT, podobnie jak wersja USB - nie wymaga dedykowanej obsługi) oraz Androida, wersja WiFi działa głównie ze smartfonami marki Apple (ale niektóre programy na PC również ją obsługują, np. ForScan oraz Multi ECU Scan). STN1110 oparty jest o szybszy mikrokontroler (PIC24HJ128GP502 vs. PIC18F2580) z większą ilością RAMu, dzięki czemu jego działanie jest bardziej stabilne (nie "gubi" ramek) i możliwe było wprowadzanie trybu RAW dla protokołu CAN. Interfejsy oparte o ELM/STN zwykle nie posiadają multipleksera linii, tj. potrafią wykorzystywać tylko standardowe piny gniazda OBD-2 i tak standardowo magistrala CAN to piny 6 oraz 14, ale np. w Fordach występuje dodatkowa magistrala CAN (MS-CAN) na pinach 3 i 11, a w niektórych FIATach na pinach 1 i 9. Konieczne jest więc stosowanie przejściówek lub interfejsów z przełącznikiem, by można było wykonać diagnostykę wszystkich systemów dostępnych w tych pojazdach (o ile oczywiście dostępne jest dedykowane oprogramowanie diagnostyczne dla interfejsu ELM i tej marki/modelu samochodu). Podobny problem występuje z tzw. linią K, która poza pinem 7, może występować na pinach 1, 3 i 9. Istnieją interfejsy z multiplekserem CAN, przełączanie odbywa się w nich między pinami 6/14 (HS-CAN) oraz 3/11 (MS-CAN) za pośrednictwem sygnału RTS (OBDLink MX/STN1170) - konieczne jest jednak wsparcie po stronie oprogramowania. Choć teoretycznie możliwe do stworzenia nie istnieje oprogramowanie diagnostyczne na interfejsy ELM/STN dla grupy VAG, istnieje natomiast bardzo zaawansowane oprogramowanie diagnostyczne dla grupy FCA - FIAT, Alfa Romeo, Lancia, Chrysler, Dodge, Jeep oraz niektóre modele Suzuki (Multi ECU Scan) oraz Forda/Mazdy (ForScan).

    Dokumentacja:
    https://www.elmelectronics.com/wp-content/uploads/2017/01/ELM327DS.pdf
    https://www.scantool.net/scantool/downloads/234/stn1100-frpm-preliminary.pdf
    https://www.scantool.net/scantool/downloads/102/stn1110_vs_elm327.pdf

    ***

    Przypominam również, że właściwy interfejs i oprogramowanie to tylko połowa sukcesu, aby mieć z tego jakiś pożytek trzeba posiadać odpowiednią wiedzę z zakresu mechaniki i elektroniki. Samo odczytanie błędów to żadna diagnoza, a ich skasowanie nie usunie usterki, może natomiast znacznie utrudnić właściwą diagnozę a w skrajnym przypadku doprowadzić do pogłębienia usterki. Odczytanych błędów nie można traktować "dosłownie", konieczna jest znajomość zależności pomiędzy różnymi systemami samochodu i zasady ich działania. Często niezbędne do postawienia diagnozy są odczyty parametrów bieżących lub dane z zamrożonych ramek. W wielu przypadkach nie da się postawić jednoznacznej diagnozy jedynie w oparciu o samą diagnostykę komputerową.

    Daewoo:
    ALDLJava (Link): ALDL, komercyjny, darmowy/20-80zł

    FIAT/Lancia/Alfa-Romeo:
    MultiEcuScan (Link): ELM327/OBD-KEY, komercyjny, darmowy/50€
    FiCOM (Link): dedykowany, komercyjny, 299€
    MaxiEcu FIAT (Link): dedykowany, komercyjny, 450zł
    IAWscan2 (Link): KKL, open-source
    AlfaOBD (Link): ELM327/OBD-KEY, komercyjny, 49€
    FiatScan (Link): dedykowany, komercyjny, 1199zł

    Ford/Mazda:
    ForScan (Link): ELM327, freeware/210zł
    ELMconfig (Link): ELM327, freeware
    MaxiEcu FORD (Link): dedykowany, komercyjny, 450zł
    F-COM (Link): dedykowany, komercyjny, 299€

    Nissan:
    Nissan DataScan I/II (Link): dedykowany, komercyjny, 52AUD/70AUD (36€/48€)

    Opel:
    OP-COM (Link, Link): dedykowany, niekomercyjny, 349€ (komercyjny 749€/3299zł)
    Autoscanner Opel CAN (Link): dedykowany, komercyjny, 380€
    VauxCheck (Link): ELM327, komercyjny, 30£
    MaxiEcu Opel (Link): dedykowany, komercyjny, 450zł

    VW/Audi/Seat/Skoda:
    VCDS (Link, Link): dedykowany (HEX-V2), niekomercyjny, 199$/1299zł (komercyjny 599€/2549zł)
    VCDS-Lite (Link): KKL, komercyjny, 99$
    Polski VAG USB (Link): KKL/dedykowany, komercyjny, 133zł (v.2.5)/399zł (v.4.9)
    VAG CAN PRO (Link): dedykowany, komercyjny, 944zł
    VAG CAN PRO + K (Link): dedykowany, komercyjny, 1244zł
    DeltaScan (Link): KKL/dedykowany, komercyjny, darmowy/1499zł

    UWAGA: Autor tematu ani administracja Forum nie ma żadnych powiązań z producentami/dystrybutorami wymienionego sprzętu ani oprogramowania*, nie zajmujemy się ich dystrybucją, a podane ceny są tylko orientacyjne.
    Powyższy wykaz nie może być traktowany jako oferta handlowa w rozumieniu art. 66 Kodeksu Cywilnego.


    * - poza IAW Scan 2 którego jestem autorem
  • IGE-XAO