• No results found

Zjednoduˇsen´ y v´ yvojov´ y digram pro ˇr´ıdic´ı jednotku

Na obr´azku2.9je zobrazen digram ˇr´ıdic´ı jednotky. Jedn´a pouze o zjednoduˇsenou verzi pro lepˇs´ı pˇredstavu, jak ˇr´ıdic´ı jednotka pracuje. Podrobnˇejˇs´ı popis jednotliv´ych funkc´ı, kter´e slouˇz´ı pro obsluhu ovl´adac´ıch prvk˚u ve vozidle, se nach´az´ı v kapitole

2.3.1 Ovl´ adac´ı prvky

Zde n´asleduje v´yˇcet jednotliv´ych prvk˚u a struˇcn´y popis toho jak´a funkcionalita k nim byla naprogramov´ana a jak byla tato implementace ˇreˇsena. Na obr´azku je pak zobrazen v´yvojov´y diagram tohoto firmwaru.

Smˇerovky

Prvn´ım z programovan´ych ovl´adac´ıch prvk˚u byly smˇerovky. Realizace ovl´ad´an´ı smˇerovek pˇriˇsla na ˇradu hned po prvotn´ım sezn´amen´ı s demo-boardem. Zde bylo z´akladn´ı poˇzadavkem, aby byla ˇc´ast, kter´a se bude starat o obsluhu smˇerovek vyˇreˇsena bez pouˇzit´ı funkc´ı, kter´e by zp˚usobovaly zastaven´ı cel´eho procesoru. V tomto pˇr´ıpadˇe to znamenalo vyvarovat se pouˇzit´ı ˇreˇsen´ı, kter´a by byla zaloˇzena na funkci

” de-lay“. Tento poˇzadavek se podaˇrilo splnit za pomoci ˇcasovaˇc˚u. V´ysledn´a funkˇcnost smˇerovek po naprogramov´an´ı pak zahrnovala jak klasick´e blik´an´ı, tak i funkci kom-fortn´ıho blik´an´ı.

Na demo-boardu bylo zap´ınan´ı a vyp´ın´an´ı svˇetel smˇerovek ˇr´ızeno pomoc´ı

” so-lid state rel´e“. V prostˇred´ı firmwaru pak vypadalo ˇreˇsen´ı veˇsker´e logiky t´ykaj´ıc´ı se smˇerovek n´asledovnˇe. Nejdˇr´ıve bylo potˇreba vyˇreˇsit klasickou funkci smˇerovek.

Tato funkce obn´aˇsela ˇcten´ı ze spr´avn´eho vstupu a n´asledn´e nastaven´ı pˇr´ısluˇsn´e hod-noty na v´ystup. V pˇr´ıpadˇe realizace komfortn´ıho blik´an´ı musela b´yt funkce sta-raj´ıc´ı se o ovl´ad´an´ı smˇerovek, rozˇs´ıˇrena a poupravena. Bylo zde provedeno pˇrid´an´ı

”counteru“a n´asledn´e kontroly, zda po projit´ı poˇzadovan´eho poˇctu iterac´ı, je p´aˇcka ovl´adaj´ıc´ı smˇerovku st´ale ve stavu zapnuto. D´ıky tomuto

”counteru“bylo dosaˇzeno poˇzadovan´eho v´ysledku, kdy i po kr´atk´em stisknut´ı p´aˇcky smˇerovek, byla zajiˇstˇena tˇri bliknut´ı.

Stˇeraˇce a ostˇrikovaˇce

Stˇeraˇce byly na demo-boardu reprezentov´any pouze jejich motorkem, coˇz bylo ale pro potˇreby programov´an´ı dostaˇcuj´ıc´ı. Pro stˇeraˇce byly naprogramov´any kla-sick´e funkce, bˇeˇznˇe zn´am´e z automobil˚u. Mezi tyto funkce patˇr´ı rychl´e st´ır´an´ı, po-mal´e st´ır´an´ı, intervalov´e stˇeraˇce (v tomto pˇr´ıpadˇe se 4 intervaly) a d´ale tak´e funkce setˇren´ı stˇeraˇc˚u 1x a nakonec i spuˇstˇen´ı ostˇrikovaˇc˚u s n´asledn´ym setˇren´ım. Pro stˇeraˇce byly k dispozici vstupy, kter´e signalizovaly spuˇstˇen´ı dan´eho reˇzimu stˇeraˇc˚u. Mimo tˇechto vstup˚u zde byl jeˇstˇe vstup, kter´y signalizoval nulovou pozici stˇeraˇc˚u. D´ale byl k dispozici v´ystup, kter´y slouˇzil k zap´ın´an´ı a vyp´ın´an´ı motorku stˇeraˇc˚u.

Pˇri realizaci funkc´ı staraj´ıc´ıch se o obsluhu stˇeraˇc˚u bylo potˇreba vyˇreˇsit vr´acen´ı stˇeraˇc˚u do nulov´e pozice. Pokud by toto nebylo br´ano v ´uvahu, pak by byly stˇeraˇce vypnuty ihned po nastaven´ı p´aˇcky ovl´ad´an´ı stˇeraˇc˚u do defaultn´ı pozice. Toto by ve v´ysledku znamenalo, ˇze by bylo moˇzn´e, aby se stˇeraˇce zastavily napˇr´ıklad i uprostˇred ˇceln´ıho okna. Pro implementaci tohoto poˇzadavku bylo zapotˇreb´ı vyuˇz´ıt vstup iden-tifikuj´ıc´ı nulovou pozici stˇeraˇc˚u. Ve v´ysledku bylo pak za pomoci tohoto vstupu zajiˇstˇeno, ˇze i po vypnut´ı stˇeraˇc˚u pomoc´ı p´aˇcky z˚ustal motorek, kter´y se staral o ovl´ad´an´ı stˇeraˇc˚u, v bˇehu do doby, neˇz byly stˇeraˇce zpˇet v nulov´e pozici.

Mezi dalˇs´ı funkcionalitu, kter´e byly implementov´any, patˇrilo i intervalov´e st´ır´an´ı.

Intervaly se pˇrep´ınaly pˇrep´ınaˇcem, kter´y umoˇzˇnoval nastaven´ı celkem ˇctyˇr interval˚u.

Na demo-boardu byl vstup z tohoto pˇrep´ınaˇce pˇriveden na analogov´y. N´aslednˇe bylo provedeno rozdˇelen´ı hodnot, kter´e byly ˇcteny z analogov´eho vstupu, do ˇctyˇr pˇr´ısluˇsn´ych interval˚u. Hodnoty ud´avaly nomin´aln´ı hodnotu napˇet´ı na tomto vstupu.

V pˇr´ıpadˇe funkce, kter´a se starala o spuˇstˇen´ı ostˇrikovaˇc˚u a n´asledn´eho setˇren´ı, staˇcilo nastavit m´ırn´e zpoˇzdˇen´ı, neˇz byly spuˇstˇeny stˇeraˇce. Toto bylo provedeno z d˚uvodu, aby bylo zajiˇstˇeno, ˇze bude pˇred pˇr´ıpadn´ych setˇren´ım na okno nanesen ˇcist´ıc´ı pˇr´ıpravek.

Z´amky

Mezi dalˇs´ı prvky, kter´e byly k dispozici na demo-boardu, patˇrily elektronicky ovl´adan´e z´amky. Pro zamˇcen´ı, resp. odemˇcen´ı, bylo potˇreba nastaven´ı dvou ˇc´ast´ı.

Prvn´ı ˇc´ast´ı byl mechanismus samotn´eho z´amku, kde se provedlo jeho zamˇcen´ı ˇci odemˇcen´ı. Druhou ˇc´ast´ı byl mechanismus, staraj´ıc´ı se o zajiˇstˇen´ı z´amku po zamˇcen´ı, pˇr´ıpadnˇe odjiˇstˇen´ı pˇred odemˇcen´ım.

Pro ovl´ad´an´ı z´amk˚u byla k dispozici na demo-boardu 3 rel´e, pomoc´ı jejichˇz v´ystup˚u se z´amky ovl´adaly. Samotn´e nastaven´ı se pak prov´adˇelo nastaven´ım pˇr´ısluˇsn´e kombinace na jejich v´ystupech. Kombinac´ı se rozum´ı napˇr´ıklad nastaven´ı rel´e 1 a 2 do stavu logick´e jedniˇcky a rel´e 3 pak do stavu logick´e nuly. Po nastaven´ı pˇr´ısluˇsn´e kombinace a vyˇck´an´ı v ˇr´adu stovek milisekund, bylo zapotˇreb´ı vˇsechna rel´e nastavit zpˇet do stavu logick´e nuly. A aˇz n´aslednˇe mohl b´yt nastaven dalˇs´ı poˇzadovan´y stav.

2.3.2 Komunikace ˇ r´ıdic´ı jednotky s displejem

Jak jiˇz bylo ˇreˇceno, starost o ovl´ad´an´ı prvk˚u ve vozidle nebyla jedin´a funkce programovan´e ˇr´ıdic´ı jednotky. Jej´ım dalˇs´ım ´ukolem bylo obstar´an´ı komunikace mezi touto jednotkou a displejem. Tato komunikace prob´ıhala po sbˇernici CAN. Hlavn´ım

´

ukolem t´eto komunikace bylo pˇred´an´ı informac´ı o aktu´aln´ım stavu prvk˚u na demo-boardu. Tento stav byl pˇred´av´am pomoc´ı CAN zpr´av. Tyto zpr´avy byly pak v dis-pleji zpracov´any a podle jejich ID bylo rozhodnuto, ke kter´e grafick´e ˇc´asti dan´a zprava n´aleˇz´ı. N´aslednˇe pak mohl b´yt aktualizov´an grafick´y v´ystup na displeji v z´ avi-slosti na datech v dan´e CAN zpr´avˇe.

Identifikace CAN zpr´av

Jelikoˇz sbˇernice CAN je urˇcena pro vz´ajemnou komunikaci v´ıce jednotek v r´amci vozidla, bylo vhodn´e odes´ılan´e CAN zpr´avy rozumnˇe oznaˇcit pro snadnˇejˇs´ı identi-fikaci. Jako nejjednoduˇsˇs´ı varianta se zde jevilo pomysln´e rozdˇelen´ı ID CAN zpr´av.

Jelikoˇz CAN ID je nejbˇeˇznˇeji reprezentov´ano 11 bity, bylo urˇceno logick´e rozdˇelen´ı na dvˇe ˇc´asti. Jedna ˇc´ast se skl´adala z prvn´ıch tˇr´ı bit˚u a druh´a ze zb´yvaj´ıc´ıch 8. D´ıky tomuto rozdˇelen´ı mohlo b´yt v displeji snadno rozhodnuto, zda je tato zpr´ava urˇcena pro nˇej ˇci nikoli. V pˇr´ıpadˇe ˇze nebyla dan´a zpr´ava pro displej urˇcena tj. nezaˇc´ınala bity 001 resp. 000 nebylo nutn´e ˇc´ıst jej´ı obsah. Prvn´ı tˇri bity 000 byly v tomto

? tení CAN sb?rnice

Je daná zpráva ur?ena pro

displej?

Ano Ne

Ur?ení ?ásti pro kterou je zpráva

ur?ena

Aktulaizace zobrazovaných

dat této ?ásti

Related documents