Skip to Content

CAN magistralė: kas prisijungęs ir kas ką pasakė

Pradėkime nuo CAN srauto momentinės nuotraukos:

Čia užfiksavome ir galėsime įvertinti CAN signalų vientisumą (fizinį sluoksnį). Osciloskopo sparta ir diskretizavimo dažnis leidžia pažvelgti į CAN signalus tarsi pro mikroskopą.

Šis įrašas parodo dviejų CAN paketų, keliaujančių suvyta CAN magistralės laidų pora, akimirką ir atskleidžia teisingus viršutinį bei apatinį įtampos lygius (3,5 V — CAN Hi ir 1,5 V — CAN Lo) kartu su teisinga 2,5 V „ramybės“ (idle) įtampa.

Atkreipkite dėmesį, kad žemiau matomas įtampos „skambėjimas“ (ringing) ir „viršsvyris“ (over-shoot) yra būdingas automobilių CAN signalams ir gali būti siejamas su keliais veiksniais: matavimo laidų tipu (standartiniai ar didelės varžos), aplinkos triukšmu ir „žinutės pabaigos“ patvirtinimu.

Atminkite, kad nė vienas iš šių reiškinių nėra gedimas — CAN tinklai yra itin atsparūs fizinio sluoksnio sutrikimams. Štai tipinis pavyzdys: https://www.picoauto.com/support/topic20981.html?&p=93851&hilit=fault+tolerant#p93851

Jei aukščiau pateiktas įrašas panašus į CAN srauto stebėjimą pro mikroskopą, tai žemiau esantį įrašą galima palyginti su tekančio CAN srauto stebėjimu iš tolo — tačiau prireikus vis tiek galime pažiūrėti detaliau, nes turime žiūronus (mastelio keitimo funkciją).

Kad būtų aiškesnė šio CAN duomenų kiekio apimtis: laikas per visą ekraną yra vos viena sekundė (100 ms padalai × 10 padalų). Naudodami PicoScope CAN dekodavimo funkciją suskaičiuojame iš viso 1066 žinutes vos per vieną sekundę pravažiuojančio srauto.

Norėdami parodyti dekoduotus CAN duomenis, atlikite veiksmus, pateiktus žemiau esančiame paveikslėlyje:

Jei nesate tikri dėl duomenų perdavimo spartos (Baud rate — tinklo greičio), galite išbandyti būdą, parodytą šiame paveikslėlyje:

Atkreipkite dėmesį, kad aukščiau pateiktame dekodavimo pavyzdyje naudotojui rodomas įspėjimas, jog „diskretizavimo dažnis gali būti per mažas“ (Properties lange nurodyta 1 MS/s, o idealiu atveju turėtų būti bent 2 MS/s), o dėl to dekodavimo lentelėje raudonai gali būti pažymėti klaidingi CAN kadrai.

Kad tokio scenarijaus išvengtume, galime pasitelkti kelias programinės ir aparatinės įrangos galimybes, užtikrinančias geresnį diskretizavimo dažnį (pakankamą didelės spartos CAN dekodavimui).

Šiuose šaltiniuose aprašyta keletas dekodavimo būdų:

Toliau gilinantis į CAN dekodavimą: kaip užtikrinti pakankamą diskretizavimo dažnį, kad būtų galima efektyviai nuosekliai dekoduoti didelės spartos CAN, ir kartu išlaikyti praktišką laiko tarpą ekrane, kad būtų lengviau atpažinti CAN valdiklius? Prisiminkite, kad galutinis tikslas čia — atskleisti ID, susietus su keliais CAN valdikliais.

Pirmas patarimas — padidinti laiko tarpą ekrane ir pasirinktų atskaitų skaičių. Žemiau naudojau 500 ms padalai (bendras laikas ekrane — 5 sekundės) su 10 MS, o tai duoda 2 MS/s ir užtikrina dekoduotų CAN duomenų vientisumą.

10 000 000 atskaitų per ekraną / 5 sekundės ekrane = 2 000 000 S/s

Toliau — užuot CAN duomenimis užėmę du kanalus, jei esame patenkinti CAN signalo forma (žr. 1 paveikslėlį), galime A kanalu fiksuoti CAN Hi signalą per didelės varžos zondą (TA375), kad sumažintume triukšmą, skambėjimą ir įsiterpimą į signalą (apsaugotume CAN signalo vientisumą).

Daugiau informacijos apie didelės varžos zondą rasite čia: topic21591.html?&p=97872#p97872

Žemiau pateiktas įrašas parodo, kaip programinės įrangos nustatymai ir pasirinkta aparatinė įranga teigiamai veikia CAN Hi tinklo signalo fiksavimą. Nors programa vis tiek įspės naudotojus apie galimą diskretizavimo dažnio problemą, matote, kad dekodavimo lentelėje klaidų pranešimų nėra. Taip pat atkreipkite dėmesį, kad dabar turime peržiūrėti iš viso 5318 CAN kadrų.

Aukščiau pateiktas įrašas yra iš 2013 m. BMW 2.0 Diesel F31 su automatine pavarų dėže, kuriame pavarų perjungimo svirtis praneša pavaros padėtį didelės spartos CAN tinklu. (Pavarų svirtis iš esmės yra CAN valdiklis.)

Prie B kanalo buvo prijungtos srovės replės (TA234 https://www.picoauto.com/products//current-clamps), uždėtos aplink pavarų svirties CAN Hi atšakos laidą — jos veikia kaip „vietos nustatymo“ priemonė bet kokiems iš pavarų svirties siunčiamiems perdavimams.

Paaiškinkime: kai turime įtampų skirtumą (CAN Hi – CAN Lo = 0 V – 2 V), pavarų svirčiai perduodant žinutes į CAN magistralės tinklą tekės srovė (CAN magistralės apkrova yra maždaug 60 omų). Atkreipkite dėmesį į nuoseklius srovės replių užfiksuotus šuolius.

Naudodami mastelio keitimo, laiko liniuočių ir mastelio (scaling) funkcijas galime išmatuoti laiko tarpą tarp kiekvieno srovės replėmis užfiksuoto šuolio (maždaug 30 ms). Užvedus pelės žymeklį ant dekodavimo juostos (ties bet kuria laiko liniuote ar srovės viršūne) PicoScope lange (grafike), iškylantysis langas parodys informaciją apie CAN paketus toje srityje, į kurią nukreiptas pelės žymeklis.

Šis būdas priklauso nuo to, kaip tvirtai laikote pelės žymeklį, todėl rekomenduoju priartinti vaizdą tiesiai virš vienos iš laiko liniuočių ir padidinti B kanalo mastelį (× 50), kad srovės šuoliai B kanale sutaptų su kiekvienu CAN paketu A kanale. Atkreipkite dėmesį, kad srovės viršūnė (iš pavarų svirties CAN Hi atšakos laido) visada sutampa su CAN valdiklio, kurio ID yra 1 97, perdavimu ir kad šie perdavimai vyksta kas 30 ms. Panašu, kad pavarų svirties CAN ID yra 1 97.

Ar galime šiomis žiniomis pasinaudoti tam, kad tuo pačiu būdu vienareikšmiškai nustatytume ne tik pavarų svirties, bet ir kitų CAN valdiklių CAN ID?

Prieš eidami toliau, verta žinoti keletą dalykų apie CAN ID:

CAN ID atlieka kelias funkcijas: jis nurodo, ar CAN yra 11, ar 29 bitų, ir naudingosios apkrovos (duomenų) prioritetą. Kuo mažesnis skaitinis ID, tuo aukštesnis žinutės prioritetas. Tas pats CAN valdiklis taip pat gali generuoti kelis ID.

Pavyzdžiui: variklio aušinimo skysčio temperatūros ID gali būti priskirtas „su temperatūra susijusių“ žinučių grupei, o variklio sūkių ID — „su varikliu susijusių“ žinučių grupei. Abu ID atkeliavo iš to paties CAN valdiklio.

Užuominą apie CAN valdiklio atpažinimą (ID) galima rasti arbitraže (Arbitration), nes arbitražas laimimas pagal žinutės prioritetą. Pavyzdžiui, jei duomenų lauke aptiktume baitą, žymintį žinutę „stabdžiai ĮJUNGTI ar IŠJUNGTI“, galėtume daryti prielaidą, kad šie duomenys greičiausiai kilę iš ABS CAN valdiklio, taigi ką tik nustatėme ABS CAN valdiklio ID. Vis dėlto tai nėra tikslusis mokslas, nes žinutė „stabdžiai ĮJUNGTI ar IŠJUNGTI“ gali ateiti ir iš pastovaus greičio palaikymo sistemos (Cruise Control) CAN valdiklio.

Iš esmės neturėtumėte nustebti, jei aptiksite kelis ID, kilusius iš vieno CAN valdiklio (ECU).

Anksčiau minėjau, kad srovė iš pavarų svirties teka kas 30 ms. Susiekime šiuos perdavimus (srovės tekėjimą) su CAN dekodavimo lentele, pasinaudodami filtravimo funkcija (Filter).

Dekodavimo lentelėje spustelėkite mygtuką Filter ir virš ID stulpelio įveskite 197, kad būtų rodomi tik su ID 1 97 susiję CAN paketai.

Atkreipkite dėmesį, kad kiekvieno CAN valdiklio ID 1 97 perdavimo pradžios (Start) ir pabaigos (End) laikas yra identiškas srovės replių aptiktiems šuoliams (30 ms intervalais).

Taip pat būtina filtruoti srovės replių signalą, nes matuodami maždaug 10 mA veikiame ties 30 A srovės replių galimybių riba.

Pažvelgę į dekodavimo lentelės duomenų lauką (aukščiau paryškintą geltonai) matome, kad pirmieji 3 duomenų baitai nuolat kinta, nors pavarų svirtis nėra judinama (nesu tikras, kodėl).

Jei dabar pajudintume pavarų svirtį, galėtume ieškoti pokyčio duomenų lauke (filtruotame stulpelyje 197) — tai padėtų patvirtinti, kad pavarų svirtį teisingai atpažinome kaip CAN ID 1 97.

Reikia pasakyti, kad PicoScope nėra CAN dekoderis tikrąja to žodžio prasme. Negalime rinkti ištisinių nesibaigiančių CAN duomenų srautų, kaip tai galima daryti su tokiais įrenginiais kaip Intrepid Vehicle Spy ar X-Analyzer 3 registratoriai ir jų programinės įrangos paketai.

PicoScope dekoduoja fizinį sluoksnį, o CAN registratoriai dekoduoja silicio sluoksnį CAN valdiklio viduje. Tai, ką turime ekrane ir signalų formų buferyje, yra viskas, su kuo galime dirbti, todėl bandydami nustatyti CAN ID turime gudrauti.

Pridėjęs C kanalą, ant pavarų svirties „Park“ jungiklio uždėjau slėginį jungiklį, kad rodomoje signalo formoje matytųsi, kada Park jungiklis buvo suaktyvintas. Naudojau NVH sąsają (TA259) mikrojungikliui maitinti, o ji per TA259 BNC išvestį perdavė signalą į PicoScope. Šį būdą naudokite įjungę uždegimą, bet neužvedę variklio, kad CAN aktyvumas būtų kuo mažesnis, ir, žinoma, įsitikinkite, kad prijungtas akumuliatoriaus palaikymo įrenginys.

Dekodavimo lentelėje pasirinkite „Display Packets Between Rulers“ ir „Filter“ ties ID 197. Slinkite dekodavimo lentelę žemyn ir ieškokite duomenų baitų pokyčio, susijusio su Park jungiklio veikimu.

Atidarius Park jungiklį, pavarų svirtis priverstinai pakeičia baitą CAN magistralėje: matome, kaip ketvirtasis duomenų baitas pasikeičia iš C0 į D5 (paspaudus Park) ir grįžta į C0 (atleidus Park).

Kadangi pavarų svirtis duomenis perduoda kas 30 ms, srovės šuolių dažnis nepakinta. Tikėjausi, kad paspaudus Park mygtuką atsiras staigus srovės šuolis. Matyt, 30 ms perdavimo intervalų pakanka užtikrinti, kad bet koks pavarų svirties būsenos ar veikimo pokytis būtų įvykdytas laiku.

Apskritai apie CAN ID yra daug ką suvirškinti, ir yra kitų būdų — vienas jų yra CAN valdiklio / ECU atjungimas: topic21593.html?&p=97888#p97888

Būtina suprasti CAN tinklą ir diagnozuojamą jo struktūrą, taip pat būtina turėti tikslią automobilio gamintojo CAN topologiją arba elektros schemą. Jos atskleis CAN „atšakas“ ir užtikrins, kad CAN linijoje, kurioje matuojate srovę, fiksuojate srovę tik iš vieno šaltinio.

Atminkite, kad PicoScope yra kur kas daugiau nei osciloskopas. Tarp daugybės jo pritaikymų yra ir nuosekliojo dekodavimo funkcija. Nors tai nėra specializuotas nuosekliųjų duomenų dekoderis, programinę įrangą galime pritaikyti taip, kad ji atliktų dekodavimo / registratoriaus funkcijas. Padės jos stipriųjų ir silpnųjų pusių žinojimas bei šiame straipsnyje minimų būdų taikymas.

Apibendrinkime iki šiol minėtus būdus:

  1. Naudokite vieną kanalą CAN Hi signalui gauti per TA375 didelės varžos zondą
  2. Naudokite 500 ms padalai su 10 MS per ekraną, kad gautumėte tris buferius su trimis aktyviais kanalais. Tai atitinka iš viso 15 sekundžių duomenų = maždaug 15 000 CAN paketų
  3. Naudodami du monitorius galėsite matyti ir dekodavimo lentelę, ir PicoScope ekraną
  4. Filtruokite srovės replių signalą (žemų dažnių filtras 1 kHz) ir naudokite PicoScope mastelio keitimo bei mastelio (scaling) funkcijas
  5. Naudokite laiko liniuotes kaip žymeklius / vietos nustatymo priemones užfiksuotame CAN signale
  6. Naudokite CAN dekodavimo lentelės filtravimo parinktį pasirinktam ID ir duomenims
  7. Matuokite srovę tik CAN atšakos laide (mes naudojome pavarų svirties CAN Hi)
  8. Priverskite CAN valdiklį pakeisti būseną (mes paspaudėme Park jungiklį)
  9. Atjunkite jus dominantį CAN valdiklį (topic21593.html?&p=97888#p97888). Saugokitės terminuojančių varžų ir „loop through“ jungimo. (Žr. atvejo analizę: https://www.picoauto.com/library/case-s … ions-fault)
  10. Priverskite pakeisti būseną atlikdami aktyvųjį testą diagnostikos skaitytuvu. Pavyzdžiui, įjunkite aušinimo ventiliatorių diagnostikos skaitytuvu ir naudokite aušinimo ventiliatoriaus srovę kaip orientyrą ieškodami jus dominančių CAN duomenų (vietos nustatymo priemonė).
  11. Naudokite Excel

Daugiau informacijos apie 9 ir 10 punktus:

Prieš tęsdami įsitikinkite, kad uždegimas įjungtas, variklis išjungtas ir prijungtas akumuliatoriaus palaikymo įrenginys. Žemiau nuo CAN tinklo atjungtas žemo slėgio kuro pripildymo siurblio valdymo blokas. Diagnostikos skaitytuvui atlikus ECU paiešką matote, kad sąraše trūksta kuro valdymo bloko (Fuel control). 

Dabar CAN tinklą fiksuojame PicoScope.

Toliau vėl prijungiame kuro siurblį, atliekame tą pačią ECU paiešką ir padarome tokį patį įrašą su PicoScope.

Dekoduokite abiejų įrašų visų buferių duomenis (žr. 4 paveikslėlį) ir eksportuokite juos į pasirinktą vietą kompiuteryje. Į nurodytą vietą bus išsaugoti du .csv failai.

Atidarykite eksportuotą .csv failą su duomenimis, kai visi ECU buvo prijungti. Spustelėkite E stulpelį, kad pažymėtumėte visą ID sąrašą. Spustelėkite dešiniuoju pelės klavišu ir pasirinkite Kopijuoti. Spustelėkite Q stulpelį ir įklijuokite nukopijuotą turinį ten. Dabar Q stulpelyje bus visi ID, užfiksuoti, kai visi ECU buvo prijungti. Kad nesusipainiotumėte, gera praktika Q stulpeliui suteikti pavadinimą. Aš jį pervadinau „ID FP ON“.

Kad sumažintumėte duomenų kiekį Q stulpelyje, spustelėkite kortelę Duomenys (Data) ir pasirinkite Šalinti dublikatus (Remove duplicates) — taip pašalinta daugiau nei 10 000 ID — ir spustelėkite Rikiuoti A–Z (Sort A-Z), kad įrašai išsidėstytų logine tvarka.

Toliau atidarykite eksportuotą .csv failą su atjungtu kuro siurbliu, spustelėkite dešiniuoju pelės klavišu E stulpelį ir nukopijuokite duomenis į kitos skaičiuoklės R stulpelį, šalia stulpelio su prijungtais ECU. Pakartokite procedūrą ir R stulpelyje pašalinkite dublikatus bei surikiuokite įrašus.

Galiausiai spustelėkite kortelę Pagrindinis (Home), pažymėkite Q ir R stulpelius ir pasirinkite Sąlyginis formatavimas (Conditional formatting), Langelių žymėjimo taisyklės (Highlight Cells Rules), Pasikartojančios reikšmės (Duplicate values) ir pasirinkite Unikalios reikšmės (Unique values). Taip bus pažymėti keli ID, kurie buvo, kai kuro siurblio valdiklis buvo prijungtas, tačiau dingo, kai jis buvo atjungtas. Nukopijuokite ir įklijuokite šiuos pažymėtus ID į S stulpelį. Tai mus dominantys ID.

Nustatėme šiuos ID:

2 262 F83 35
3 674 4C5 17

Visų jų nebuvo, kai kuro siurblio valdiklis buvo atjungtas. ID 0F FF BF B9 atsirado tada, kai kuro siurblio valdiklis buvo atjungtas; kol kas nesu tikras kodėl, bet pasidomėsiu giliau.

Vaizdo įrašas: https://www.youtube.com/watchv=QTq2qcoQ6fk&feature=youtu.be

Kitas žingsnis — priversti kuro siurblį įsijungti diagnostikos skaitytuvu, tuo pat metu vienoje signalo formoje fiksuojant kuro siurblio srovę ir CAN Hi duomenis.

Naudokite dekodavimo filtro parinktį ir virš ID stulpelio įveskite kiekvieną iš aukščiau nurodytų ID, kad nustatytumėte to ID svarbą kuro siurbliui veikiant. Pradedant nuo viršaus: 2 26 ir 2 F8 nerasti. Tačiau 3 35 pasirodė keturis kartus per penkias sekundes, maždaug vienos sekundės intervalais (žiūrėkite Start time). Įdomu tai, kad pirmasis ID 3 35 perdavimas įvyko 50 ms prieš kuro siurblio paleidimo (in-rush) srovę. Taip pat atkreipkite dėmesį, kad Data stulpelis rodo naudingojoje apkrovoje perduodamos informacijos pokytį — tai leidžia manyti, kad vyksta informacijos atnaujinimas.

Toliau: ID 5 17 buvo vienintelis ID, buvęs kuro siurblio veikimo metu, perduodamas kas 646 ms. Atkreipkite dėmesį, kad kuro siurbliui veikiant duomenų lauke pokyčių nėra. Tai leidžia manyti, kad duomenys nesusiję su siurblio veikimu. Tačiau tai tik prielaida, todėl 100 % jos atmesti negalima.

Pamažu susiauriname visus ID iki dviejų galimybių — 3 35 ir 5 17. Naudodami parinktį Decode between rulers galime pradėti tiksliai nustatyti CAN ID perdavimus, susijusius su kuro siurblio įjungimu, ir taip įvertinti šių ID svarbą.

Aukščiau esantis paveikslėlis rodo, kaip dar labiau sumažiname CAN duomenų kiekį žiūrėdami tik į duomenis tarp laiko liniuočių. Tai leidžia sutelkti dėmesį tik į CAN srautą kuro siurblio veikimo metu.

Apibendrinkime šį etapą:

  1. ID 3 35 dingsta, kai kuro siurblio valdiklis atjungiamas nuo CAN tinklo.
  2. ID 3 35 perduodamas CAN magistrale ir kuro siurbliui veikiant, ir jam stovint, tačiau siurbliui veikiant naudingoji apkrova nuolat atnaujinama vienos sekundės intervalais.
  3. ID 3 35 pirmą kartą perduodamas 50 ms prieš kuro siurblio paleidimo srovę (paleidimo tašką).
  4. ID 517 dingsta, kai kuro siurblio valdiklis atjungiamas nuo CAN tinklo.
  5. ID 5 17 perduodamas CAN magistrale (646 ms intervalais) ir kuro siurbliui veikiant, ir jam stovint, tačiau naudingoji apkrova niekada nekinta (00 00 00 00 12 61 00).
  6. ID 5 17 perdavimai atrodo periodiški: nei perdavimo laikas (646 ms intervalai), nei naudingoji apkrova nepriklauso nuo siurblio veikimo — nei valdant diagnostikos skaitytuvu, nei veikiant varikliui.

Įrodymų, leidžiančių atmesti ID 5 17, vis dar nepakanka, tačiau šiame etape žinome, kad ID 3 35 yra mūsų kuro siurblio valdiklis. Dekoduodami kitus ID turėsime omenyje ir ID 5 17.

Kuro siurblio (FP) aktyvusis testas:  TEST 9 ACTIVE TEST FB LOW FLOW.psdata

Toliau apžvelgsime papildomus būdus ir Excel funkcijas, kurie padės sugrupuoti kitus ID pagal juos atitinkantį CAN valdiklį, įskaitant ID 5 17.

Pasinaudosime unikaliomis kiekvieno CAN valdiklio elektrinėmis savybėmis (elektriniu parašu) ir apžvelgsime CAN ID grupavimo būdus.

SVARBU! Įsitikinkite, kad tikrinamas automobilis turi pakankamą akumuliatoriaus palaikymą, kad CAN fizinis sluoksnis veikia teisingai dominuojančių ir recesyvinių įtampos lygių atžvilgiu ir kad CAN duomenis fiksuojate didelės varžos zondais (topic21591.html?&p=97872#p97872).

Rekomenduoju perskaityti šį Warwick Control Technologies komandos straipsnį, nes toliau pateikiami dalykai atkartoja jų atvirkštinės inžinerijos metodus: https://www.warwickcontrol.com/press-re … gineering/

Kol neperskaičiau to straipsnio, nebuvau pagalvojęs, kad kiekvienas CAN valdiklis (ECU) turi savo „elektrinį parašą“, tačiau tai logiška. Kaip aprašoma straipsnyje: kai atitinkamas CAN valdiklis laimi arbitražą, jis gali perduoti savo žinutę / naudingąją apkrovą magistrale. Tuo metu perduoda tik vienas CAN valdiklis, nes visi kiti nutyla (jie pralaimėjo prioriteto kovą).

Dominuojančios įtampos (CAN Hi 3,5 V ir CAN Lo 1,5 V), esančios magistralėje žinutės / naudingosios apkrovos perdavimo metu, bus unikalios ją perduodančiam CAN valdikliui dėl ECU gamybos leistinųjų nuokrypių, jungčių, skirtingų komponentų ir jo fizinės vietos magistralėje.

CAN kadrų / paketų perdavimo metu galime naudoti PicoScope nuoseklųjį dekodavimą, kad rastume būtent bet kurio ID kadro žinutę / naudingąją apkrovą, o tada Deep Measure (topic17711.html) — kad gautume unikalias dominuojančias CAN Hi ir CAN Lo įtampų vertes žinutės / naudingosios apkrovos perdavimo metu.

Gavę šias vertes, galime eksportuoti Deep measure duomenis į Excel, rasti dominuojančių CAN Hi ir CAN Lo įtampų modą (modal value) ir pavaizduoti jas grafiku, kad susietume žinomus CAN ID su nežinomais. Turiu prisipažinti, kad nežinojau, kas yra moda, kol neįsigilinau į Excel. Iš esmės tai skaičius, kuris skaičių sekoje pasikartoja dažniausiai. Pavyzdžiui: dominuojančios CAN Hi įtampos žinutės perdavimo metu galėtų būti 3,555 V, 3,555 V, 3,661 V, 3,514 V ir 3,601 V. Vadinasi, moda būtų 3,555 V, nes ji pasikartoja du kartus, o kiti skaičiai — tik po vieną.

Pradėdami nuo žinomo pavarų svirties ID 1 97, naudojame nuosekliojo dekodavimo filtro įrankį, kad rastume  ID 1 97, ir laiko liniuotes, kad atskirtume žinutę / naudingąją apkrovą nuo viso CAN kadro / paketo. Tada tarp liniuočių A ir B kanalams taikome Deep measure, kad gautume tikslias mūsų CAN žinutės dominuojančių įtampų vertes.

Žinutės atskyrimas nuo CAN kadro:

Žemiau esantis paveikslėlis parodo Deep measure taikymo B kanalui (CAN Lo) procedūrą, kai kirtimo taškas arba ciklo slenkstis (Cycle threshold) yra 2 V. Pakartokite šią procedūrą A kanalui (CAN Hi), kirtimo tašku pasirinkę 3 V.

Šis paveikslėlis rodo dominuojančias įtampas tarp laiko liniuočių, užfiksuotas su Deep measure CAN Hi kanale perduodant CAN ID 1 97 naudingąją apkrovą. Pakartokite šią procedūrą CAN Lo, žiūrėdami į minimalią įtampą, nes būtent ji bus CAN Lo dominuojančios įtampos vertė.

Dabar mygtuku Export išsaugokite kiekvieną Deep measure .csv failą pasirinktoje kompiuterio vietoje. Kad nesusipainiotumėte, rekomenduoju failus pavadinti atitinkamai 1 97 Hi ir 1 97 Lo. Atidarykite .csv failus ir spustelėkite tuščią langelį po jus dominančiu stulpeliu. CAN Hi atveju tai bus stulpelis „Max voltage V“, o CAN Lo — „Min Voltage V“.

Spustelėkite „Neseniai naudotos“ (Recently used) ir pasirinkite MODE.

Pastaba: MODE gali tekti ieškoti per funkcijos įterpimo parinktį (Insert function), tačiau kartą ją panaudojus ji lieka po mygtuku „Neseniai naudotos“. Atsidarys funkcijos argumentų langas, kuriame langeliai MODE funkcijai pritaikyti užpildomi automatiškai. Spustelėkite Gerai (OK) ir pasirinktame tuščiame langelyje atsiras moda. CAN Hi atveju mūsų pasirinkto ID 1 97 unikali moda yra 3,540776 V, o CAN Lo — 1,49171 V.

Atidarykite naują Excel failą ir išsaugokite šias unikalias vertes dviejuose naujuose stulpeliuose su antraštėmis „CAN Hi“ ir „CAN Lo“. Pakartokite procesą su visais žinomais ir nežinomais ID, kuriuos norite kvalifikuoti.

Anksčiau paaiškinau, kaip galėjau kvalifikuoti ID 3 35 kaip kuro siurblio valdiklį, tačiau dėl ID 5 17 buvau labiau neužtikrintas. Naujame Excel faile galite įtraukti papildomus stulpelius su antraštėmis „ID“ ir „Name“, kurie bus nuoroda ir aprašys žinomus ID. Pažymėkite visas naujame Excel faile išsaugotas unikalias vertes, spustelėkite kortelę Įterpti (Insert) ir pasirinkite sklaidos diagramą (Scatter chart). Ji pavaizduos visas pažymėtas unikalias vertes ir atskleis nežinomų ID kilmę, palyginti su žinomais.

Toliau pateiktame pavyzdyje ID 3 35 (kuro siurblio valdiklis) turi tokį patį elektrinį parašą kaip ir ID 5 17 — tai leidžia manyti, kad abu ID kilę iš to paties valdiklio.

Warwick Control Technologies straipsnyje aprašomas išradingas būdas išgauti atsaką iš kelių ECU siunčiant standartizuotus „diagnostinės užklausos“ CAN ID / žinutes įvairiems ECU (per CAN duomenų registratorių) ir fiksuojant standartizuotą atitinkamo ECU atsaką. Prisiminkite standartinę diagnostinės užklausos ID 7 E0 arba 7 DF iš diagnostikos skaitytuvo ir variklio ECU atsaką 7 E8.

Jei tada užfiksuosite atsako žinutės (ID 7 E8) unikalias dominuojančias įtampų modas, galėsite jas pavaizduoti sklaidos diagramoje kartu su kitais ID, kurie susitelkia aplink šį atsaką. ID, kurie sklaidos diagramoje susigrupuoja aplink tą patį tašką, turi tą patį elektrinį parašą, todėl gali būti priskirti tam pačiam CAN valdikliui.

Kadangi PicoScope negalime generuoti diagnostinės užklausos ID / žinučių, galime naudoti EOBD ir užklausti VIN duomenų — tai priverstinai sukels standartizuotą variklio ECU atsaką (7 E8) ir suteiks mums „žinomas“ unikalias dominuojančias įtampas, kurias galėsime pavaizduoti šalia kitų nežinomų ID. Šis įrašas forume padės tai atlikti: https://www.picoauto.com/support/topic21593.html?&p=97888#p97888

Šiame vaizdo įraše aprašomas CAN dekodavimo, Deep measure, eksportavimo į .csv ir sklaidos diagramos kūrimo Excel programoje taikymas.

Įdomu tai, ką pastebėjau apie sklaidos diagramoje pavaizduotus ID: aplink variklio atsako ID 7 E8 ID beveik nebuvo. Būčiau manęs, kad aplink jį susitelks keli ID, tačiau automobilis yra BMW F31, ir nors variklio ECU prijungtas prie PT-CAN, variklio valdymo ryšys daugiausia vyksta per FlexRay. Šį unikalių modinių įtampų braižymo būdą išbandysiu automobilyje, kuriame naudojamas CAN tinklas, kad galėčiau toliau patvirtinti procesą. Prie to sugrįšiu vėliau.

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

Toyota Camry (importinis): skirstomųjų velenų fazių neatitikimo klaida (Quad Cam variklis)