Pāriet pie satura

J1939 magistralės dekoderis PicoScope 7 programoje

Pico programinės įrangos komandos dėka PicoScope 7 Automotive tobulėjimas nesustoja. Noriu pasidalyti nauja funkcija, įtraukta į 7.0.73.8350 laidą – nuosekliuoju dekoderiu, sukurtu specialiai CAN protokolui J1939.

 Kaip ir kiti PicoScope 7 Automotive nuosekliojo dekodavimo įrankiai, CAN J1939 dekoderis paverčia CAN magistralės įtampas į skaitomą formą (paprastai šešioliktainę, tačiau galimi ir dvejetainis, dešimtainis ar ASCII formatai). Tačiau J1939 dekoderis sukurtas būtent J1939 CAN protokolo pranešimams ir ypač jų ID dekoduoti.

 Kodėl J1939 nusipelno atskiro dekoderio, lemia tai, kaip sudarytas ID ir kiek informacijos jame telpa. Pirmiausia reikia suprasti, kaip sudarytas J1939 pranešimo ID. Pranešimo antraštėje, ID, yra 29 bitai, kurie perskaičiuoti į šešioliktainį formatą duoda 4 baitus. Šiuose 4 baituose slypi svarbiausia informacija apie duomenis, esančius CAN pranešimo naudingojoje dalyje. Šį ID galima suskaidyti į tris dalis: prioritetą (Priority), parametrų grupės numerį (PGN) ir šaltinio adresą (source address).

 PGN nurodo SAE J1939 standarto įtariamojo parametro numerius (SPN), pagal kuriuos galima rasti, kaip pranešimo duomenyse aptikti ir perskaičiuoti (mastelis / poslinkis) reikšmes. Tai ypač naudinga, kai reikia patikrinti, ar duomenys teisingi, bet kitaip jų pasiekti negalite. Vis dėlto svarbiausia – rasti PGN antraštėje. Tai darote paimdami du vidurinius Pico dekoduoto ID baitus, pavyzdžiui – 0C F0 04 00. Svarbiausi čia yra du viduriniai, F0 04. Toliau F004 verčiate į dešimtainį skaičių. Naudodami „Windows“ programuotojo skaičiuotuvą gauname skaičių 61444. Greita SAE standartų paieška pagal PGN 61444 patvirtina, kad tai Electronic Engine Controller 1. Todėl galime drąsiai teigti, kad 0C F0 04 00 atitiko variklio ECU, arba EEC1.

Diagnostiniu požiūriu šaltinio adresas gali būti dar naudingesnis. Naudojant SAE J1939-DA dokumente pateiktą bendrą šaltinio adresų ID sąrašą galima susikurti duomenų–teksto (data-to-text) aprašų failą ir jį pasirinkti dekoderyje. Tada dekodavimo lentelėje bus rodomi visų tinkle bendraujančių CAN valdiklių aprašai. Taip galėsite tiksliai matyti, kurie valdikliai yra prisijungę, kurių nėra, o kurie galbūt kelia tinklo problemas.

Be įprastų CAN pranešimo dalių, kurias gali pateikti CAN nuoseklusis dekoderis, CAN J1939 dekoderis visiškai iššifruoja pranešimo identifikatorių (ID) ir suskaido jį į tris sudedamąsias dalis: prioritetą, parametrų grupės numerį (PGN) ir šaltinio adresą. Kai pateikiamas ir pasirenkamas tinkamas duomenų–teksto failas (susiejantis ID reikšmes su jų aprašais), dekodavimo lentelėje bus rodomi pilni PGN ir šaltinio adreso tekstiniai aprašai.

Paveikslėlyje aukščiau aiškiai matyti skirtumas tarp įprasto CAN dekoderio (1) ir J1939 dekoderio (2).
 
Kaip minėjau, dekoderyje esančia „Data to Text“ (duomenys į tekstą), arba nuorodų failo (Link file), funkcija galime paversti dekoduotas reikšmes skaitoma forma. Norėdami sukurti nuorodų failą, pirmiausia turime sukurti šabloną. Dekodavimo lentelėje spustelėkite „Data to Text“ ir pasirinkite „Create template“. Tada būsite paprašyti išsaugoti failą kompiuteryje. Patariu pasirinkti vietą, kurią lengvai rasite. Išsaugoję suraskite šį failą ir atidarykite jį programa, kuri gali atverti CSV failus, pavyzdžiui, „Excel“.
 

Šis CSV failas veikia kaip peržiūros (lookup) lentelė. Kiekvienas dekodavimo lentelės stulpelis dabar turi dar vieną stulpelį su aprašu. Dominančius langelius paryškinau, kad būtų matomiau.
 
Čia galime paimti J1939 dekoduotoje lentelėje matomas reikšmes ir suteikti joms aprašą. Internete rasite nemokamų šaltinių su PGN ir šaltinio adresų ID. Išsamiau apie PGN ir šaltinio adresus rašėme šiame forumo įraše. Jei norite viso PGN sąrašo, jį reikia įsigyti iš SAE.
 
Pademonstruosiu su dažnu ID: Engine Controller 1. Jau sužinojome, kad Engine Controller 1 PGN yra 61444, o perskaičiavus į šešioliktainį gauname F004. Mūsų dekoderis reikšmes skaido į šešioliktainius baitus, vadinasi, F004 tampa F0 04. Dabar galime įrašyti pirmąjį ID į nuorodų failą po antraštėmis „ID2 PGN“ ir „ID2 PGN Description“.
 

Šaltinio adreso aprašus – visus ID – rasite ISOBUS duomenų žodyno svetainėje. Šioje svetainėje šaltinio adresas nurodomas dešimtaine forma. Kad peržiūros lentelė veiktų, dešimtainį skaičių reikės perskaičiuoti atgal į šešioliktainį. „Windows“ skaičiuotuvas turi patogų programuotojo režimą, kuris tai lengvai atlieka. Reikia turėti omenyje, kad šaltinio adreso ID gali skirtis priklausomai nuo pramonės šakos. Tai gali būti pramoninė technika, keliais ir ne keliais važiuojanti technika, laivyba ir pan. Puiku tai, kad nuorodų failų galite susikurti po atskirą kiekvienai jus dominančiai sričiai.
 
Kai kurie šaltinio adresai visuose sektoriuose sutampa; paprastas pavyzdys – „0“, reiškiantis Engine #1. Kaip ir PGN atveju, tai dešimtainė forma, kuri perskaičiuota į šešioliktainę PicoScope 7 J1939 dekodavimo lentelėje pasirodys kaip „00“. „Excel“ nemėgsta priekinių nulių, todėl visus vienaženklius šaltinio adresų ID turime paversti tekstu. „Excel“ tai padaroma paprastai: pažymėkite langelį arba langelius, spustelėkite dešiniuoju pelės klavišu ir pasirinkite „Format cells“.
 

Dialogo lange „Format Cells“ spustelėkite „Custom“ ir sąraše pasirinkite „0“. Pažymėtame laukelyje įrašykite dar vieną „0“, kad pavyzdyje matytųsi „00“ – taip pridedamas priekinis nulis. Spustelėkite OK, ir langelyje ar langeliuose dabar turėtų atsirasti priekinis 0, atitinkantis dekodavimo lentelę. Baigus pavyzdinis nuorodų failas atrodo štai taip.

Išsaugokite šį failą ir uždarykite „Excel“. PicoScope nuorodų failo funkcija neveiks, jei failą naudos kita programa.
 
Grįžę į PicoScope 7 Automotive, kai dekodavimo lentelė vis dar aktyvi, spustelėkite „Data to text“, tada „Open“. Failų naršyklėje nueikite į vietą, kur išsaugotas nuorodų failas, ir pasirinkite „Open“. PicoScope 7 Automotive pritaikys nuorodų failą dekodavimo lentelei. Dabar duomenis matote mums skaitoma forma.
 

Nuorodų failo taip lengvai nebūtų pavykę sukurti, jei PicoScope 7 programinės įrangos komanda nebūtų skyrusi laiko J1939 dekoderiui sukurti. Jiems didelis ačiū – manau, tai labai pravers sprendžiant J1939 problemas, kai diagnostikos skaitytuvui tenka eiti per tinklų sietuvą (gateway), o ten kyla nesklandumų, pavyzdžiui, magistralės perkrova.

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

New Holland SP310: sunkiai užsivedančio purkštuvo paslaptis