Přejít na obsah
  • Aktuální cíle darů

FAP - Ako detekovat regeneraciu FAPu inteligentnym sposobom


Lisiak

Recommended Posts

... ide o to, ze povodnym zapisom sa zistuje, ci bit7 (MSB v buf[4]) nadobuda hodnotu "1". Takze sa urobi logicky sucin: buf[4] & 0b1000000. Ak MSB = 1, tak vysledok je 0x80.

Povodny zapis by sa vsak dal aj prepisat ako:  if (((buf[4]&0x80)>>7) == 1)  tzn. MSB bit sa posunul o 7 pozic doprava na poziciu LSB (low significant bit).

Premenna "buf[]" je v programe definovana ako "char" cize 8bit premenna, nie "boolean" t.j. 1 bit.

V C-cku existuje mnoho zapisov, v tomto pripade sa iba zistuje, ci bit7 v premennej "buf[4] nadobuda hodnotu "log.1".

Zapisom "if (((buf[4]&0x80) == 1)" by sa zistovalo, ci po aplikovani masky "1000 000", premenna bit[4] nadobuda hodnotu "1" tzn. bit0 je "log.1".

Odkaz ke komentáři
Sdílet na ostatní stránky

  • O 3 měsíce později...

Neměřili jste, jaký to má odběr? Když je to stále připojené na napájení? Jdu to zkusit postavit 🙂

Edit:

Tak zpět. Přečetl jsem si, že je napájení připojené na PIN1, takže je to napájené až po zapnutí klíčku.

Upraveno uživatelem afilip
Doplnění textu.
Odkaz ke komentáři
Sdílet na ostatní stránky

  • O 5 týdnů později...

Tento navod na jednoduchu signalizaciu poziadavky na regeneraciu FAP filtra bol publikovany z mojej strany uz pred viac ako 2 rokmi a pocas tychto Korona casov sa mi podarilo dokoncit vylepsenu verziu CANBUS readeru. Tymto prispevkom by som chcel poukazat na to co vsetko sa da z tychto informacii “poskladat” a s akymi problemami, pri stavbe readera, sa musi clovek popasovat.

Hlavne vlastnosti noveho CANBUS readeru:

-        Pouzity graficky farebny OLED displej,

-        Zobrazenie na displeji poziadavky na regeneraciu FAP filtra + zvukova signalizacia (signalizuje sa zaciatok a aj koniec regeneracie),

-        Zobrazenie kilometrovej vzdialenisti od poslednej regeneracie,

-        Zobrazenie vzdialenosti medzi dvoma poslednymi regeneraciami ( da sa vydedukovat kolko km zostava do nasledujucej regeneracie, ak su viac-menej zachovane jazdne vlastnosti),

-        Zobrazenie otacok motora (od 0 do 8191),

-        Zobrazenie rychlosti (od 0 do 655km/h),

-        Zobrazenie prejdenej vzdialenosti od startu (rozlisenie ABS/ESP RJ je 10cm),

-        Zobrazenie zrychlenia vozidla (od -14 do 6,32m/s2),

-        Zobrazenie okamziteho momentu motora (od -100 do 408Nm),

-        Zobrazenie natocenia vlantu v stupnoch (od 0 do 589st na obidve strany),

-        Zobrazenie teplot: motora, oleja, nasavaneho vzduchu,

-        Zobrazenie spotreby v mililitroch od nastartovania,

-        Zobrazenie celkovej spotreby v litroch od posledneho vynulovania,

-        Zobrazenie casu jazdy od nastartovania,

-        Zobrazenie celkoveho casu jazdy od posledneho vynulovania,

-        Zobrazenie napatia akumulatora a teploty interieru (cez Dallas DS18B20).

Vsetky tieto informacie su podrobnejsie popisane uz spominanom francuzkom dokumente, odkaz sa nachadzal v navode. (http://romain.raveaux.free.fr/teaching/TP207.pdf).

Teraz sa pokusim priblizit ako to na CANBUS zbernici vyzera a na ake problemy je potrebne sa pripravit. V mojom aute sa na rychlej 500kbit/s CANBUS zbernici nachadza asi 72 adries a CANBUS reader nacitava z toho mnozstva dat len 4 adresy, ktore ma zaujimaju resp. mam k nim popis. Ide o nasledujuce adresy:

-        0x208 -> na tejto adrese sa nachadza info o otackach motora, poziadavka na regeneraciu FAP filtra a okamzity moment motora. Cas obnovovania informacii je 15ms t.j. kazdych 15ms posle RJ motora na CANBUS novu informaciu o okamzitych otackach motora.

-        0x38D -> rychlost vozidla, prejdena vzialenost do 6553,5m (potom sa vynuluje a pocita odzaciatku), zrychlenie vozidla. Obnovovacia perioda 50ms.

-        0x305 -> natocenie volantu v stupnoch a jeho smer otacania. Nejde o moc relevantnu informaciu, ale na tejto adrese som skusal prepinanie filtrov v MCP2515 “za jazdy”. Obnovovacia casova perioda 15ms.

-        0x488 -> informacie o teplotach a spotrebe motora (pocitadlo pocita do 20400mm3 a potom sa vynuluje t.j. overflow). Perioda obnovovania 100ms.

CANBUS interface nacitava udaje z CANBUS zbernice v nahodnom poradi t.j. ako ich “odchytne”, pricom plati, ze pravdepodobnost “odchytu” adresy s nizsou obnovovacou periodou je vyssia ako adresy, ktora sa obnovuje pomalsie. Z tohto dovodu moze trvat nacitavanie udajov napr. o spotrebe (adresa 0x488 s periodou 100ms) aj niekolko desiatok sekund a za tento cas sa moze stat, ze pocitadlo v RJ motora sa “pretoci” po 20ml cim sa strati presnost pocitania spotreby. Aby sme sa tomuto spomaleniu vyhli a nacitavali udaje takmer v realnom case, tak je nevyhnutne v CANBUS interfacei aktivovat filtre. Obvod MCP2515 ich ma 6. To znamena, ze len tie adresy sa dostanu dalej na spracovanie, ktore su definovane v tychto filtroch. V mojom pripade definicia tychto filtrov vyzera v Arduino sketchi nasledovne:

     CAN.init_Mask(0, 0, 0x7FF);                        

     CAN.init_Filt(0, 0, 0x208);                         

     CAN.init_Filt(1, 0, 0x38D);                          

     CAN.init_Mask(1, 0, 0x7FF);

     CAN.init_Filt(2, 0, 0x488);

     CAN.init_Filt(3, 0, 0x488);                         

     CAN.init_Filt(4, 0, 0x488);                          

     CAN.init_Filt(5, 0, 0x488);

MCP2515 ma dva buffre, v ktorych sa nachadzaju „odchytene“ adresy s udajami. Pokial su obidva buffre plne, tak sa nacitavanie z CANBUSu zastavi a caka sa na ich vyprazdnenie.  Je dost podstatne si uvedomit tento princip nacitavania a dalsieho spracovania dat z CANBUSu, clovek sa tak vyhne velmi velkemu mnozstvu “bezsennych noci” a otazkam typu: preco mi to doma na stole funguje, ale v aute uz nie?

Pre predtavu o aky komplexny projekt ide, tak hlavny ovladaci program v Arduine ma nieco cez 1000riadkov + driver na MCP2515 obvod (cez 1600 riadkov) + driver na OLED SSD1351 displej (400 riadkov) …atd. Drivery na ovladanie hardwareu su nastastie uz napisane a k dispozicii vdaka obrovskej Arduino komunite. Uz ide len o to, do akej formy spracovat informacie a nacitane udaje z CANBUS zbernice.

Tymto prispevkom som chcel len poukazat na to, ze v dnesnych modernych autach sa nachadza obrovske mnozstvo dat a niekedy je celkom zaujimave sa k tymto udajom dostat a dokazat ich vhodne interpretovat vo svoj prospech. Informacia o regeneracii FAP filtra je pre viac ako 95% uzivatelov aut totalne k nicomu, ale pre ten zvysok, ktori maju radi techniku a maju stale radost z hrania sa, to moze byt zaujimave 😊.

WhatsApp Image 2020-05-19 at 16.54.59 (1).jpeg

WhatsApp Image 2020-05-19 at 16.54.59 (2).jpeg

WhatsApp Image 2020-05-19 at 16.54.59 (3).jpeg

WhatsApp Image 2020-05-19 at 16.54.59 (4).jpeg

WhatsApp Image 2020-05-19 at 16.55.00 (1).jpeg

WhatsApp Image 2020-05-19 at 16.55.00 (2).jpeg

WhatsApp Image 2020-05-19 at 16.55.00 (4).jpeg

WhatsApp Image 2020-05-19 at 16.55.00.jpeg

Upraveno uživatelem Lisiak
Odkaz ke komentáři
Sdílet na ostatní stránky

Dobrá práce. Já čekám už jenom na konektor, abych mohl zkompletovat tu detekci regenerace FAP.  Nevíš náhodou, jestli se v nějakém PID také nezobrazují aktuální GPS souřadnice? Přemýšlel jsem, že by se kombinací nějakého modulu SIM800L dal udělat jednoduchý sledovací modul. Samozřejmě by k tomu šel připojit i vlastní GPS modul, ale bylo by to asi zbytečné, jestli se ty souřednice někde na CANBUSu objevují.

 

Odkaz ke komentáři
Sdílet na ostatní stránky

Takmer vsetky informacie, ktore sa zobrazuju na displeji sa nacitavaju z CANBUSu. Avsak nie na systemovej (500kb/s) zbernici, ale na komfortnej (125kb/s). Kedze na tejto zbernici sa nachadza napr. info o case, tak predpokladam, ze aj GPS koordinaty na nejakom PIDku budu. Kde konkretne vsak neviem. Nieco popisane o komfortnej zbernici sa nachadza na tomto odkaze https://autowp.github.io/, ktory bol uvedeny v navode. Na komfortnu zbernicu sa da pripojit napr. na konektore autoradia. 

Ja som sa pokusal pomocou "reverse engineering" zistit na ktorom PID su informacie o tlakoch a teplotach v pneumatikach. Zistil som (je mozne, ze sa aj mylim), ze na systemovu zbernicu poziela RJ pneu len "error flag", ktore koleso ma pokles tlaku v pneu a podla toho sa zobrazi sprava na displeji. Informacie o tlakoch a teplotach su pristupne cez testovaciu/diagnosticku zbernicu. Je vsak tiez mozne, ze na komfortnej zbernici nejake info o tom bude. Tu som vobec neskumal.

P.S: AK by niekto, na tomto fore, disponoval podrobnejsim popisom CANBUSu od PSA, ocenil by som, ak by sa sukromne/diskretne o take informacie podelil. :). 

Upraveno uživatelem Lisiak
Odkaz ke komentáři
Sdílet na ostatní stránky

Zúčastnit se diskuse

Můžete odpovědět a až poté se registrovat If you have an account, sign in now to post with your account.

Návštěvník
Odpovědět na toto téma...

×   Byl vložen obsah s formátováním.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Kdo si právě prohlíží tuto stránku   0 registrovaných uživatelů

    • Žádný registrovaný uživatel si neprohlíží tuto stránku
×
×
  • Vytvořit...