Pāriet pie satura

SENT jutiklių signalų dekodavimas su PicoScope

Dirbdamas Pico turiu galimybę iš arčiau susipažinti su naujausiomis jutiklių technologijomis, naudojamomis šiuolaikiniuose automobiliuose. Nors šis konkretus jutiklis rinkoje jau kurį laiką, SENT pasitaiko vis daugiau ir daugiau automobilių.

Pagalbos tarnyba, automobilių forumas ir mūsų Facebook grupė sulaukė vis daugiau klausimų ir diskusijų apie tai, kaip geriausia dirbti su šiais jutikliais. Tai paskatino mane panagrinėti, kaip PicoScope galima panaudoti kuo daugiau informacijos iš šių jutiklių gauti.

Neketinu daug laiko skirti aiškinimui, kas yra SENT. Yra puikių dėstytojų, kurie kur kas geriau paaiškins, kaip veikia šis protokolas. Tačiau leiskite trumpai supažindinti su šiuo tinklu.

SENT reiškia Single Edge Nibble Transmission ir atitinka J2716 standartą. Jis pigus ir vienkryptis (tik viena kryptimi), o tai reiškia, kad jutiklis gali tik siųsti duomenis. SENT nuo kitų jutiklių skiriasi tuo, kad vienu laidu galima perduoti kelis duomenų vienetus. Vienas jutiklis, pavyzdžiui, vienu laidu gali siųsti ir slėgio, ir temperatūros matavimus. Tai atpigina sistemą ir mažina laidų poreikį — o gamintojai to visada siekia. Vadinasi, galite pamatyti MAF (oro srauto matuoklio) jutiklį vos su trimis laidais, kuriuos matuodami rasite 5 V maitinimą, masę ir duomenų laidą.

Kaip minėjau, SENT gali perduoti daugiau nei vieną duomenų vienetą, ir tai daroma sudarant LĖTĄJĄ (SLOW) žinutę iš „nibble" (pusbaitų), paimtų iš GREITŲJŲ (FAST) žinučių. Lėtajai žinutei sudaryti reikia kelių greitųjų žinučių. Svarbu pažymėti, kad abi šios žinutės gali būti dekoduotos PicoScope naudojant nuoseklųjį dekoderį.

Taigi kaip atrodo SENT duomenų paketas?

Ši fiksacija yra iš .psdata failo, kurį maloniai įkėlė forumo narys. Visą forumo įrašą galite pamatyti čia: https://www.picoauto.com/support/topic21901.html.

Matote, kad jį gana lengva supainioti su PWM signalu, nes jis yra 0–5 V su, atrodytų, kintančiu užpildos koeficientu. Taip pat šiame straipsnyje galite pastebėti, kad kai kurie signalai atrodo apversti. Tai nėra tyčia. Tai tiesiog dar viena SENT protokolo savybė — signalo poliarumas gali keistis, tačiau duomenys lieka tokie patys.

Apžvelgsiu, kaip nustatyti kiekvieną dekoderį ir jį pridėti prie signalo, bet kad visi matytume, kaip sudaromas LĖTASIS signalas, dekoderį jau pridėjau. Iš to matome, kad vienai LĖTAJAI žinutei sudaryti reikia kelių GREITŲJŲ duomenų paketų. Tai svarbu pažymėti, nes LĖTOJOJE žinutėje yra itin naudingos su jutikliu susijusios informacijos. Vis dėlto atkreipkite dėmesį, kad būtina padaryti pakankamai ilgą fiksaciją, kad turėtumėte visus duomenis. Geriausius nustatymus paskelbsiu netrukus.

Jei toliau naudosime aukščiau pateiktus duomenis, praktiškiausia pradėti nuo LĖTOJO dekoderio.

Spustelėkite Tools > Serial Decoding > Create > SENT Slow.

Rekomenduoju pradėti nuo lėtosios žinutės todėl, kad šiuose duomenyse dažnai galima rasti informacijos apie jutiklį, kurios reikia greitajam dekoderiui nustatyti. Greitasis dekoderis siūlo kelias parinktis, kaip norite, kad dekoderis veiktų, atsižvelgiant į matuojamo jutiklio tipą.

Baigiant dekoderio nustatymą, programinė įranga automatiškai nustatys kai kuriuos slenksčių parametrus pagal pasirinktą kanalą. Pastebėsite, kad šis signalas nėra „švarus" ir turi tam tikrų trikdžių. Signalą galite „išvalyti" žemų dažnių (LowPass) filtru kanalo parinktyse. Pastebėjau, kad 300 kHz veikia gerai.

Kitos galimybės — pakoreguoti nustatymus patiems; tokiu atveju turėsite dekoderiui nurodyti, su kokiu įtampos slenksčiu dekoduoti, taip pat kokią histerezę norite įtraukti. Toliau pateikti nustatymai buvo atlikti jau įjungus žemų dažnių filtrą, tačiau galite naudoti 3 V su minimalia histereze. 

Baigę spustelėkite OK ir įsitikinkite, kad dekoderis pažymėtas, prieš dar kartą spustelėdami OK. Signalo formos apačioje susidarys lentelė su žmogui suprantamais duomenimis. Deja, vis dar trūksta papildomos informacijos apie jutiklį. Jei ekrane turėtume šiek tiek daugiau laiko, gautume papildomos informacijos apie jutiklį, o tai savo ruožtu reiškia, kad galėtume tiksliau sukurti SENT Fast dekoderį.

Galėjome tęsti su šia fiksacija ir spėlioti, kokio tipo jutiklį turime, tačiau turėjome ilgesnių fiksacijų su papildoma informacija dekodavimui. Lėtąjį dekoderį (pagal anksčiau aprašytą procesą) pritaikiau šiai fiksacijai. Aiškumo dėlei: jutiklis yra slėgio jutiklis, naudojamas EGR aušintuve. Fiksacija buvo padaryta užvedant variklį ir atliekant staigų droselio atidarymo (snap WOT) testą.

Kuo daugiau duomenų paketų, tuo didesnė tikimybė rasti dalį papildomos informacijos, perduodamos LĖTUOJU signalu. Šiuo metu mus domina 8 paketas. Kaip matote, jis suteikia informaciją apie jutiklio tipą. Tai svarbu nustatant GREITĄJĮ dekoderį. Matome, kad turime Pressure/Secure tipo jutiklį. Vis dėlto papildomi duomenys gali būti lygiai tokie pat svarbūs, ypač gamintojo kodas. Žinutės ID nurodo sąrašą, pagal kurį galima nustatyti, kas pagamino jutiklį. 

Jį lengva rasti greitai paieškojus internete, tačiau, dėl informacijos, tie, kuriuos iki šiol radau, išvardyti žemiau –

Grįžkime į PicoScope. Nuosekliojo dekodavimo įrankyje iš sąrašo pasirenkame SENT FAST.

Matysite, kad jutiklio tipo žinojimas mums svarbus, nes iš sąrašo galime pasirinkti konkretų jutiklį. Iš anksčiau žinome, kad tai Pressure/Secure jutiklis. Vėlgi, čia nesigilinsiu į smulkmenas, nes tai ne straipsnio tikslas, tačiau duomenų lauko formatas keičiasi priklausomai nuo jutiklio tipo. PicoScope leidžia pasirinkti norimą formato tipą iš standartinio J2716 sąrašo.

Dabar dekodavimo lentelėje turime ir lėtuosius, ir greituosius duomenis. Norėdami perjungti tarp jų, spustelėkite kiekvienos lentelės skirtukus ekrano apačioje, kur matomos SENT Slow ir SENT Fast etiketės.

Norint geriau suprasti, ką daro jutiklis, kitas žingsnis — pasinaudoti PicoScope eksportavimo funkcija. Dekodavimo lentelėje įsitikinkite, kad atidarytas SENT Fast skirtukas ir kad dekodavimas veikia tik su esamu buferiu, tada spustelėkite Export. Tuomet būsite paprašyti išsaugoti failą lengvai randamoje vietoje.

Suraskite išsaugotą failą ir atidarykite jį Excel programa. Dabar matysite PicoScope dekodavimo lentelę, tik su galimybe toliau apdoroti duomenis. Steve turi kelis įrašus forume, kuriuose jis naudojo Excel papildomai informacijai iš užfiksuotų duomenų išgauti. Daugiau iš Steve galite paskaityti čia.

Tai gali atrodyti gana bauginančiai, tačiau atliksime kai ką labai paprasto, kad pamatytume, ką jutiklis daro, mums įprastu būdu. SENT žinutės duomenų paketas padalijamas priklausomai nuo jutiklio tipo, o dalys pažymėtos kaip 1 kanalas ir 2 kanalas. Žemiau pateiktas pavyzdys, kuris, tikiuosi, tai paaiškins išsamiau.

Paveikslėlis, aiškinantis duomenų paketų padalijimą pagal jutiklio tipą.

Kai PicoScope pritaikote SENT Fast nuoseklųjį dekoderį, jūs nurodote programinei įrangai, kaip norite, kad duomenys būtų padalyti. Aukščiau esančiame paveiksle tai būtų tipiškas tolygus duomenų lauko padalijimas: 12 bitų 1 kanalui ir 12 bitų 2 kanalui. Žinome, kad jutiklis, kurį nagrinėjame Pico, yra Pressure/Secure tipo. Peržiūrėję J2716 standartą matome, kad slėgio duomenys yra 1 kanale. Grįžę į Excel lapą galime duomenis vizualizuoti sukurdami diagramą. Pasirinkite 1 kanalo stulpelį, stulpelį D.

Pasirinkę duomenis, spustelėkite Insert ir suraskite linijinės diagramos (Line Chart) parinktį.

Dabar turime grafiškai pavaizduotus duomenis, gautus iš SENT jutiklio.  Tai gali atrodyti šiek tiek paprastai, tačiau diagramą galime priartinti pakoregavę joje naudojamus duomenis. Pripažįstu, kad tai kiek nepatogu, bet geriau nei nieko!

Pasirinkę duomenų šaltinį ir pakeitę duomenų intervalą, galėsime sutelkti diagramą į mus dominančią duomenų sritį. Žemiau esančioje diagramoje pasirinkau peržiūrėti duomenis tarp D5625 ir D12140.

Žemiau esančioje diagramoje duomenų intervalą pakeičiau į D5625–D6625. Manau, sutiksime, kad tai, ką matome, primena išmetimo pulsacijų signalo formą.

Žemiau tas pats procesas pritaikytas MAF (oro srauto matuoklio) jutikliui, kuris naudoja SENT oro srauto ir temperatūros duomenims siųsti. Duomenis užfiksavau su PicoScope, dekodavau ir eksportavau. Tada iš 1 kanalo duomenų sukūriau diagramą. Taip pat atlikau panašų testą varikliui dirbant laisvąja eiga, o vėliau — staigaus droselio atidarymo (WOT snap) testą.

Štai priartinta versija, kurią gavome pakeitę intervalą.

Vis dėlto iki šiol susidūriau su viena nedidele problema. Negaliu teisingai paimti 1 ar 2 kanalui dekoduotos reikšmės ir paversti jos mums suprantamu matavimo vienetu. Duomenys iš jutiklio verčiami pagal charakteristikas, esančias SENT lėtojoje žinutėje. Kim Anderson jau atliko nuostabių tyrimų šia tema ir maloniai atnaujino forumo įrašą, kuris ir įkvėpė šį straipsnį. 

Man dar nepavyko jomis pasinaudoti tikrajai išmatuotai reikšmei nustatyti. Nepaisant to, manau, kad tai itin naudingas būdas vizualizuoti jutiklį taip, kaip anksčiau negalėjome. Manau, būtų galima nubraižyti ir duomenis iš nuosekliojo diagnostikos skaitytuvo. Tačiau nerimaučiau, kad PID duomenų atnaujinimo dažnis ką nors praleis, o tai gali būti gyvybiškai svarbu esant su pertrūkiais pasireiškiantiems gedimams.

Tiek išmetimo, tiek MAF jutikliui pastebėjau, kad geriausia daryti ilgą fiksaciją, nuo 1 s/pad. iki 2 s/pad., ir išlaikyti aukštą diskretizavimo dažnį (siekti 10 MS). Tai, tikiuosi, užtikrins, kad mėginiai bus dekoduoti teisingai. Pastebėjau, kad gaunu geltoną įspėjamąjį trikampį „Sample rate may be too low" (diskretizavimo dažnis gali būti per mažas). Dekodavimo problemų iki šiol neturėjau. Galite užtikrinti, kad neprarasite duomenų, pridėdami vienkartinį (single) paleidiklį, tačiau turite būti pasiruošę atlikti staigaus droselio atidarymo testą. Toliau dirbsime ties paleidiklio funkcionalumu, nes tai vienas dalykas, kuris fiksuojant man pasirodė sudėtingas. Kitos galimybės būtų panaudoti kitą kanalą akceleratoriaus pedalo padėčiai arba stabdžių jungikliui. Kai viskas paruošta, greitas pedalo bakstelėjimas paleis osciloskopą, pasiruošusį fiksuoti duomenis dekodavimui.

Tikiuosi, kad tai padės. Prašau atsiliepti su bet kokiais pasiūlymais, o jei pavyks priversti matavimo vienetus veikti, straipsnį atnaujinsiu.

Šį straipsnį įkvėpė forumo gijoje aprašytas atvejo tyrimas, kurį papildė ir kiti naudotojai. Forumo giją rasite čia.

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

Neardomoji variklio diagnostika: klausimai ir atsakymai (2 dalis)