Pāriet pie satura

Ryšio su diagnostikos skaitytuvu gedimas

Tai svečio atvejo tyrimas, kurį parengė Nick Hibberd iš Hibtech Auto-Electrical Diagnostics.

Automobilis turėjo su pertrūkiais pasireiškiantį važiavimo trūkumą – greitinant jis „springdavo“, o gedimo lemputė (MIL) neužsidegdavo. Klientas tvirtino, kad tai ne šiaip retkarčiais – tai pasireiškia labai retai. Pirmiausia prijungiau diagnostikos skaitytuvą pažiūrėti, ar užfiksuota gedimo kodų. Būtent čia tyrimas pasuko staigiu posūkiu. Diagnostikos skaitytuvas keistai atsakė „No Communication Possible“ (ryšys neįmanomas), o kai tai matau, automatiškai pagalvoju: ką aš padariau ne taip? Taip galvoti natūralu, nes juk kompiuteriai neklysta, tiesa? Viską peržiūrėjau iš naujo, bet rezultatas tas pats. Patikrinau kitus modulius ir greitai pastebėjau, kad su daugeliu jų ryšio nėra. Tai būdinga diagnostinės linijos gedimui, ir galvoje jau pradėjo formuotis veiksmų planas. Prieš darydamas ką nors kita, informavau klientą apie tai, ką radau, ir kad tai savaime yra būtinas tyrimas, be kurio negalėsiu imtis jo pirminio skundo.

Jei turiu reikalą su diagnostinės linijos gedimu, tikėtiniausia priežastis yra laido trumpasis jungimas į akumuliatoriaus neigiamą arba teigiamą polių. Iš ankstesnės patirties su šios markės automobiliais žinau, kad beveik visi prijungti moduliai eina į vieną OBD lizdo kontaktą, o tai nepalengvina reikalo, nes dabar mano įtariamas gedimas gali būti bet kurioje automobilio vietoje.

Atėjo laikas prijungti osciloskopą, kad gedimo vaizdas taptų aiškesnis. Stebėti diagnostinę liniją elektriniu būdu šiame modelyje, švelniai tariant, kiek nepatogu, todėl pasirinkau žinomą prijungimo tašką už radijo aparato, kuris iš tikrųjų galėjo padėti diagnozei.

Šioje nuotraukoje jungiuosi prie modulio, esančio toliau nuo OBD lizdo, o tolesnis mano žingsnis priklausys nuo to, ką užfiksuosiu. Kadangi jau nusprendžiau, kad paveikti ir kiti moduliai, ne tik variklio, tikiuosi, kad kiekvienas čia gautas įrašas bus toks pat kaip ir visos likusios diagnostinės linijos bei prie jos prijungtų modulių. Iš pradžių ieškau esamo įtampos lygio, paprastai artimo akumuliatoriaus įtampai, o tada, kai diagnostikos skaitytuvas bando užmegzti ryšį, ieškau impulsais paduodamos masės tam tikra kodų seka. Kadangi diagnostine linija dalijasi visi moduliai, į tam tikrą skaitytuvo perduotą kodą atsakys tik vienas, o visi kiti jį ignoruos. Gana teorijos – pažiūrėkime.

Esant diagnostinės linijos problemai, mėgstu pirmiausia pažvelgti plačiai, o vėliau priartinti. Tai padeda pamatyti skaitytuvo ryšio užmezgimą (handshake), kuris gali užtrukti, kol modulis atsakys, ir taip pat pastebėti bet kokius pasislėpusius nukrypimus.

Iš pirmo žvilgsnio nieko labai blogo nematyti. Matome tvarkingą ryšio užmezgimo struktūrą su geromis aukšto ir žemo lygio įtampomis. Tai taip pat rodo, kad tarp diagnostikos skaitytuvo ir modulių nėra nutrūkusios grandinės. Kol kas neaišku modulio atsako kokybė, tačiau taip gali būti dėl to, kad kompiuteriui sunku parodyti greitą atsaką esant ilgai laiko skalei. Priartinkime ir pažiūrėkime atidžiau.

Dabar reikalai atrodo ne tokie geri. Paryškinta atkarpa, kuri neva turėtų būti modulio atsakas, iškart kelia nerimą. Kažkas bando prasiveržti, tačiau tai tikrai nėra dvejetainis signalas. Labiau primena pjūklo dantų formą. Tas pats signalo „arkos efektas“, matomas modulio atsake, pastebimas ir ryšio užmezgimo kylančiame fronte. Tai potencialiai didelė problema, kurią verta akcentuoti.

Dvejetainiuose signaluose visada yra veikimo slenkstis, ir įtampa neturi būti visiškai įjungta ar visiškai išjungta, kad modulis atpažintų galiojantį dvejetainį bitą. Yra perėjimo taškas, kuriame modulis atskiria aukštą ir žemą būsenas. Jei triukšmo smailės neperžengia šio slenksčio, modulis jų nemato ir neaptinka klaidingos būsenos. Kaip pavyzdį čia pasirinkau 5 voltų slenkstį.

1b įraše matote, kad kylantis signalo frontas turi „arkos efektą“ grįždamas į ramybės būseną, ir tai turi įtakos kilimo trukmei, o kartu ir bendram diagnostikos skaitytuvo ryšio užmezgimo laikui. Užfiksavau, kad kilimo trukmė čia siekė apie 23 ms (0,023 sekundės) – to nelaikau normalu, tačiau 1,007 sekundės tarpas tarp būsenų pokyčių nebuvo pakankamas sutrukdyti moduliui atsakyti į ryšio užmezgimą, nors ir klaidingai.

Tad kas tai sukelia? Šiuo metu negalvoju apie laidų gedimą, o labiau linkstu prie modulio problemos. Aprašytas „arkos efektas“ signale atrodo labai kontroliuojamas, tvarkingas ir švarus. Toks valdymo pobūdis būdingas varžinei-talpinei (RC) grandinei, tačiau dvejetainiame signale jam ne vieta. Tai problema elektronikos lygmenyje.

Atidžiau pažvelgę į krintantį dvejetainį frontą, matome panašią savybę. Būčiau tikėjęsis, kad esant tokiai laiko skalei dvejetainė struktūra bus daug ryškesnė nei matoma dabar.

Šiuo momentu žengiau žingsnį atgal ir keletą minčių užsirašiau schemos pavidalu. Tai man ne kartą padėjo pastebėti problemas, kurių iš pradžių nesitikėjau. Šįkart tikėtiniausia priežastis, kurią sugalvojau, buvo tokia:

Įtariu talpos nuotėkį į diagnostinę liniją ir kad ši talpa jau yra sujungta su mase arba bent jau labai artima jos potencialui. Štai mano samprotavimas.

Diagnostinės linijos įtampa ramybės būsenoje susidaro iš didelės varžos šaltinio prijungtų modulių viduje, įskaitant ir dabar prie linijos prijungtą diagnostikos skaitytuvą. Šiai įtampai nutempti iki 0 V reikia tik labai mažos srovės – būtent tai skaitytuvas ir daro. Esant linijos įtampai ramybės būsenoje, mūsų įtariama talpa jau būna įkrauta. Kai skaitytuvo ryšio užmezgimas nutempia linijos įtampą žemyn, talpa taip pat priversta iškrauti sukauptą krūvį į masę, tačiau prieš tai dar šiek tiek „pasipriešina“ – tai matome kaip nedidelę eksponentinę kreivę prie pagrindo 1d fragmente. Dabar talpa yra beveik masės potencialo lygyje visą dvejetainės žemos būsenos trukmę. Kai 1c fragmente dvejetainė žema būsena atleidžiama, mūsų įtariama talpa įsikrauna ir vėl matome būdingą eksponentinę kreivę. Atkreipkite dėmesį, kaip skirtingai paveikiami abu dvejetainiai frontai. Taip yra todėl, kad skaitytuvo masės komanda pradžioje ateina iš mažos varžos šaltinio, tempiančio signalą žemyn, o pabaigoje signalą aukštyn tempia didesnę varžą turinti diagnostinė linija.

Žinoma, visa ši teorija nė kiek nepadeda, nes man vis dar lieka klausimas: kur ta problema?

Prie variklio modulio, esančio po valytuvų apdaila, prieiti gana vargina, todėl paiešką pradėjau keleivio salone. Nuėmiau vairuotojo pusės prietaisų skydelio apatinę dalį ir apsidairiau. Už jos yra komforto blokas (Convenience Unit), o toliau planavau pereiti prie prietaisų skydelio. Ir tada man dingtelėjo, kad radijo aparatas juk taip pat yra modulis...

Ištraukiau ISO maitinimo jungtį ir pabandžiau diagnostikos skaitytuvą iš naujo: Connection Established (ryšys užmegztas).

Neįtikėtina! Tai buvo tiesiog prieš mano akis. Visa diagnostikos sistema vėl veikė.

2 įrašas – dabar tai ryšio užmezgimo atkarpa: tobula.

2a įrašas padarytas, kai variklio modulis siuntė diagnostikos skaitytuvui pilną duomenų srautą. Su prijungtu radijo aparatu (esant gedimui) signalas neturėjo jokių šansų suformuoti pilno „bito“, nes mūsų šalutinė talpa sukaupdavo pakankamai energijos, kad diagnostinės linijos potencialas išliktų gana aukštas. Grįžtame prie RC grandinių laiko konstantų, kai kondensatorius įkraunamas iš maitinimo šaltinio, o paskui iškraunamas į apkrovą.

Diagnostikos skaitytuvo ryšio užmezgimas, palyginti su pilnu duomenų srautu, yra ilgas, todėl jam pavyko suformuoti apibrėžtą dvejetainį bitą, neleidžiant šalutinei talpai per daug įsikišti.

Atjungiau diagnostinės linijos prijungimą nuo radijo aparato ir paaiškinau klientui situaciją. Atrodė, kad jo per daug nesujaudino tai, jog jo radijo aparatas liko be diagnostinės linijos.

Po viso to variklio valdymo bloke nebuvo užfiksuota jokių gedimo kodų.

Straipsnis išverstas iš Pico Technology bibliotekos su gamintojo leidimu. Originalas: picoauto.com. PicoScope įrangą rasite mūsų kataloge.

Prasta salono temperatūros reguliacija