Krok za krokiem

Autor: Nick Hibberd

Samochód przybył do naszego warsztatu ze względu na sporadyczne problemy z płynnością jazdy, między innymi dławieniem się podczas przyśpieszania. Żadna lampka kontrolna nie była zapalona. Klient twierdził, że problem jest bardzo rzadki. W pierwszej kolejności podłączyłem diagnoskop do komputera w celu sprawdzenia czy jakikolwiek błąd DTC został zapisany. W tym właśnie miejscu dochodzenie przyczyn usterki napotkało pierwszy duży problem.

Diagnoskop zwrócił dziwną wiadomość "Brak komunikacji". Zawsze gdy widzę taką wiadomość odruchowo zadaje sobie pytanie: Co zrobiłem źle? Ponownie wszystko sprawdziłem, jednak komunikat pozostał ciągle ten sam.

Próbowałem podłączyć się do innych modułów samochodu, wyświetlany był podobny komunikat. Oznaczało to, że jest to typowa awaria linii diagnostycznych. Zanim rozpocząłem dalszą pracę, poinformowałem klienta o odkrytej awarii oraz że wymaga ona naprawy w pierwszej kolejności.

OBD socket

Jeśli mam do czynienia z awarią linii diagnostycznej to przeważnie jej powodem jest zwarcie kabla do masy lub plusa akumulatora. W przeszłości pracowałem już z tym modelem samochodu dlatego wiedziałem że prawie wszystkie moduły łączą się poprzez jeden pin gniazda OBD. Oznaczało to, że przyczyna awarii może być gdziekolwiek w samochodzie.

Kolejnym etapem było podłączenie oscyloskopu samochodowego Pico. Monitorowanie linio diagnostycznej w tym modelu było utrudnione, dlatego postanowiłem podpiąć się do gniazda umieszczonego za radiem.

connecting the scope

Na tym zdjęciu widać jak podłączyłem się z dala od gniazda OBD. Mój następny ruch był zależny od tego co zarejestruje oscyloskop. Przewidywałem również, że przebiegi zapisane z tego modułu będą takie same w innych modułach podpiętych do linii diagnostycznej. W przypadku awarii linii diagnostycznej, pierwszą rzeczą którą szukam po podłączeniu oscyloskopu, jest sygnał w okolicach napięcia akumulatora (dla magistrali LIN spoczynkowym poziomem jest stan wysoki). Następnie gdy diagnoskop próbuje nawiązać połączenie szukam zmian w sygnale, gdyż linia powinna zmieniać swój stan z jedynki logicznej do zera. Ponieważ każdy moduł dzieli tą samą linie diagnostyczną, tylko jeden odpowie na specyficzny kod wywołania podawany przez diagnoskop.

Dodatkowo w przypadku problemów z linią diagnostyczną  lubię mieć pobrany długi ciąg przebiegu, który potem mogę spokojnie powiększać. Takie podejście pozwala dostrzec próbę połączenia diagnoskopu z modułem, czasami może być to długi proces.

waveform 1

W zasadzie wszystko wydawało się działać prawidłowo. Widać wyraźną strukturę próby nawiązania połączenia, z dobrymi poziomami niskiego i wysokiego napięcia. Dodatkowo sygnał potwierdza brak uszkodzenia linii diagnostycznej pomiędzy diagnoskopem a modułem. Co jest nietypowe, to odpowiedź modułu. Nie widać tego dokładnie więc powiększymy jeszcze przebieg.

waveform 1a

W przybliżeniu sygnał nie wygląda już tak dobrze. Powodem do niepokoju jest zakreślona sekcja sygnału, czyli odpowiedz modułu na próbę połączenia. Coś się stara nadawać, lecz nie jest to wiadomość binarna. Wygląda to jak sygnał piłokształtny. Dodatkowo warto spojrzeć na czas narastania i opadania zbocza. Opadanie jest bardzo szybkie natomiast narastanie jest niewspółmiernie dłuższe co może sygnalizować kolejny problem.

waveform 1b

W przypadku sygnałów binarnych zawsze istnieje pewien próg działania dla czasów opadania i narastania. Sterownik ma odpowiednie tolerancje dla sygnałów. Interpretacja sygnału przez sterownik jako niskiego lub wysokiego odbywa się na prostej zasadzie, gdzie sygnał osiąga jakiś punkt napięciowy. Powyżej tego punkty jest on rozpoznawany jako wysoki a poniżej jako niski. Poniżej przedstawiam przykład rozpoznania sygnału przez sterownik. Czerwona linia oznacza bity rozpoznane przez moduł, natomiast czarna linia to aktualny przebieg napięciowy.

binary thresholds

waveform 1c

Na przebiegu 1c, widać jak sygnał wracający do wysokiego stanu spoczynku tworzy "efekt łuku" (narastanie przebiegu). Efekt ten ma wpływ na ogólną szybkość komunikacji pomiędzy modułami oraz diagnoskopem. Obliczyłem że czas narastania trwa 23ms, nie jest to wartość normalna.

Co jest przyczyną takiego sygnału? W pierwszej kolejności nie brałem pod uwagę usterki okablowania, raczej skłaniam się w kierunku problemu z jakimś modułem. Taki typ przebiegu, który jest powtarzalny, wskazuje na obwód rezystancyjno-pojemnościowy (RC) któregoś z modułów.


waveform 1d

Po analizie przebiegu 1D dostrzegłem, że sygnał opadający posiada również stosunkowo duży czas opadania. Pierwotnie oczekiwałem bardzo szybkiego spadku, niemal prostej linii pionowej niżeli tej widocznej na przebiegu.

W tym momencie zrobiłem krok w tył i zapisałem parę pomysłów. Najbardziej prawdopodobna przyczyna awarii wyglądała następująco:

capacitance leak

Podejrzewałem, że jeden z kondensatorów bocznikujących linię diagnostyczną ma problem. Biorąc pod uwagę, że to czas narastania jest dłuższy, to kondensator musiałby być podłączony do masy. Zasada działania tej linii diagnostycznej jest taka, że stan wysoki jest utrzymywany przez oporności występujące na modułach, moduł który się komunikuje zwiera linię do masy, potrzeba do tego niewielkiej ilości prądu gdyż czas przełączania musi być możliwie najkrótszy. W momencie gdy diagnoskop inicjuje połączenie (obniża linie napięcia), kondensator jest również zmuszony do pozbycia się zmagazynowanego ładunku przez co czas opadania wydłuża się (przebieg 1D). W momencie gdy przebieg narasta, dodatkowy prąd jest potrzebny do naładowania kondensatora co powoduje większe nachylenie zbocza narastającego (1C).

Niestety mimo w/w teorii nadal nie wiedziałem dokładnie skąd pochodzi problem, który moduł jest jego przyczyną.

ISO connector

Podpięcie oscyloskopu samochodowego do modułu silnika było bardzo utrudnione, dlatego że moduł znajdował się pod plastikową osłoną wycieraczek. Postanowiłem więc podpiąć się gdzieś wewnątrz samochodu. Po chwili spędzonej w kabinie olśniło mnie, że radio jest również modułem, który się komunikuje.

Odłączyłem kostkę zasilającą radio i podłączyłem diagnoskop. Po chwili zobaczyłem informacje - "Połączenie ustawnowione".

Niesamowite! Cały system diagnostyczny ponownie wrócił do działania. Wystarczyło odłączyć radio!

waveform 2

Przebieg 2 pokazuje sygnał przy połączeniu diagnoskopu, z odłączonym radiem. Wszystko wygląda dobrze a czasy narastania i opadania są wystarczająco szybkie

waveform 2a

Przebieg 2a został zapisany w momencie przesyłania danych z modułu silnika do diagnoskopu. Z podłączonym radiem (źródłem problemu) sygnał nie miał żadnych szans stworzenia pełnego "bitu". Powodem tego była zmagazynowana energia w "zabłąkanej" pojemności, która utrzymywała wysoki potencjał linii diagnostycznej. W taki sposób wracamy do stałych czasowych układów rezystancyjno-pojemnościowych (RC), gdzie kondensator może ładować się ze źródła zasilania, a następnie odprowadzać prąd pod obciążeniem.

electron flow

Ostatecznie odizolowałem linie diagnostyczną od radia, a następnie poinformowałem klienta o sytuacji. Nie przeszkadzał mu brak linii diagnostycznej w radiu.

Po wszystkim, nie znalazłem żadnego kodu błędu (DTC) zapisanego w ECU.

*do przeprowadzonego badania użyto oscyloskop samochodowy USB PICO PicoScope 4423