Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pouzdanost WDT-a

[es] :: Elektronika :: Mikrokontroleri :: Pouzdanost WDT-a

Strane: 1 2

[ Pregleda: 6130 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Pouzdanost WDT-a18.07.2007. u 12:31 - pre 204 meseci
Pokusao sam da nadjem nacin da WDT bude 100% pouzdan, ali nisam nasao nacin za to. Da li neko ima neku ideju ?

Pozdrav.
 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
*.mainstream.co.yu.



+10 Profil

icon Re: Pouzdanost WDT-a18.07.2007. u 15:34 - pre 204 meseci
Kako mislis nije 100% puzdan, na motoroli?

__*__
*___*
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Pouzdanost WDT-a18.07.2007. u 17:57 - pre 204 meseci
Mislim da nije 100% siguran ni kod jednog od popularnih 8-o bitnih MCU-a.

Uvek je moguce da kada program zaluta naidje na kod koji resetuje (nezeljeno) WDT. Moze se govoriti samo o verovatnoci da se desi nezeljeno resetovanje WDT-a.

Kod idalnog MCU-a koji ima duzinu svih naredbi 1 rec, onda se moze desiti samo nekontrolisan skok u neku tablicu, a da se u njoj nadju takvi podaci koji zavrte program u petlji koja resetuje WDT. Ali takav MCU ne postoji, mada su mu blizi svi drugi osim Motorole koja ima naredbe razlicitih duzina. Situaciju malo popravljaju interrupti koji se dese na neispravan kod naredbe, ali i to je slaba pomoc jer je prva kodna stranica skoro puna, a druga je skoro prazna (bolje bi bilo da je uravnotezeno, barem sa ovog aspekta).

Kompajler uvek moze da proveri (ako je tako napravljen) da li ima potencijalno opasnih kombinacija uzastopnih kodova i da izvesti o tome programera. Sta ce tada programer uraditi zavisi od njegove snalazljivosti i mastovitosti.

Kod MC908 se resetuje WDT upisom bilo cega u neku memorijsku lokaciju (toliko prosto da je katastrofa). Da stvar bude jos gora, moduce je resetovanje WDT-a i upisom u tu lokaciju preko indeksnog registra. Tada je kompajler nemocan da napravi pomenutu proveru jer nezna sadrzaj indeksnog registra koji se menja u toku izvrsenja programa.

Kod HC11 je to bilo bolje: za reset WDT-a trebalo je uzastopce upisati na odredjenu lokaciju 0xaa, pa potom 0x55, sto smanjuje verovatnocu od nezeljenog resetovanja WDT-a.

Ima li neko ideju kako da se ovaj mehanizam ucini pouzdanijim?

Pozdrav
 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
*.mainstream.co.yu.



+10 Profil

icon Re: Pouzdanost WDT-a18.07.2007. u 18:44 - pre 204 meseci
Tesko mozes reci da se to odnosi na vecinu popularnih MCU-a, govorim iz ugla AVR dok za PIC nisam bas siguran.
Konkretno kod Atmelove AVR serije taj sklop je resen na sledeci nacin. WDT ima personalni oscilator koji radi na ~1MHz i registar WDTCR. Upisom odredjenog byte-a aktivira se WDT i vreme od 16mS do 2S u 8 koraka. U asembleru je dovoljno izvrsiti WDR (watchdog reset) komandu i to je to.
Na programeru je da pravilno odredi vreme i wreme za reset.

pozdrav
__*__
*___*
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Pouzdanost WDT-a18.07.2007. u 19:23 - pre 204 meseci
Ma, jasno mi je.

Kod za WDR je 0x95A8, i takva rec se moze naci u tablici, ili kao adresa neke lokacije flash-a kojoj se pristupa. Kada dodje do smetnje i program pocne neregularno da se izvrsava, postoji verovatnoca da 0x95A8 procita kao kod naredbe (iako nije) i da nezeljeno resetuje WDT. Jeste za to mala verovatnoca, manja nego kod MC908, ali za zahtevanu veliku pouzdanost to nije dovoljno. Zamisli uredjaj sa AVR-om koji treba da na elektricnoj lokomotivi radi 10 god bez greske. Nije strasno ako proradi WDT, ali je opasno ako se resetuje kada ne zelimo, jer ostavlja mogucnost da se program zavrti u nekoj beskonacnoj petlji, i eto katastrofe.

Srecna okolnost kod AVR-a je da samo takva rec resetuje WDT, i uvek je moguce proveriti da li postoji neka druga takva. Ako mora da postoji u tablici, onda sve vrednosti tablice mogu biti, na primer komplementirane (pa kad se procitaju mogu da se komplementiranjem dovedu na pravu vrednost). Ako se takva vrednost nadje kao adresni parametar, onda je jedna nop naredba dovoljna da pomeri ceo kod i da zeljena adresa bude uvecana za 1. Dakle ima resenja, mada sam po sebi WDT nije 100% pouzdan.

Za MC908 moracu vise da se pomucim da bih postigao 100% pouzdanosti zastite WDT-om.

Pozdrav.

PS: bilo koji vremenski interrupt moze da posluzi kao WDT, na primer real time interrupt. U toj interrupt proceduri proveris da li je neki niz bajtova u RAM-u ono sto treba, i obrises taj niz. Ako je niz bio dobar, onda nista, ali ako nije dobar onda izazoves reset MCU-a. Resetovanje ovakvog WDT-a je postavljanje ispravnih vrednosti niza bajtova. Ovo cinis u periodama kracim od periode real time interrupt-a. Ali i ovde postoji problem: haoticno izvrsavanje programa nesme da iskljuci ovaj interrupt. Idemo dalje, sta ces.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pouzdanost WDT-a18.07.2007. u 21:38 - pre 204 meseci
Ne postoji 100% sigurnost WDT-a, niti bilo cega drugog na svijetu. Mozes samo da povecavas tu vjerovatnocu do zadovoljavajuceg nivoa. Postoje razni nacini za to, mozes malo da proucis oblast koja se naziva "Sigurnost i Pouzdanost Sistema" ako zelis nesto vise o tome da saznas. Kod iole ozbiljnijih sistema WDT ili Time-Out logika je realizovana izvan mikrokontrolera, kao zaseban dio sistema (mislim, iako vec postoji ugradjena u uC, niko se ne oslanja na njih kada se radi o sistemima kod kojih se zahtjeva visoka pouzdanost).
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
*.zrlocal.net.



+28 Profil

icon Re: Pouzdanost WDT-a18.07.2007. u 23:14 - pre 204 meseci
Verovatnoća da se desi ista kombinacija bajtova je 1/65536,
pa još da PC upadne baš na to mesto i to u petlji... veoma mala.
Pre će WDT potpuno otkazati.
Ako postoji i mala sumnja u pouzdanost WDT-a, mislim da nije
na softveru da to reši.

Sada prave i mikrokontrolere koji služe samo u te svrhe,
na primer http://www.atmel.com/dyn/resources/prod_documents/doc4708.pdf

samo postavlja se pitanje, ko će njega kontrolisati :-)
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Pouzdanost WDT-a19.07.2007. u 11:56 - pre 204 meseci
Da, sa svima vama se slazem. WDT je neupotrebljiv za apsolutno pouzdane sisteme. Naravno da pre svega treba konstruisati uredjaj da bude imun na elektromagnetne smetnje, ali standard (EMC) predvidja snagu smetnji koje deluje na vas uredjaj prilikom testiranja. Medjutim, u praksi se mogu desiti, povremeno, smetnje vece snage, i tada vam nista ne vredi EMC sertifikat koji imate. Koliko god je mala verovatnoca da zakaza WDT, to ne znaci mnogo ako MCU sa taktom na basu od 50ns napravi za 10 god. 8.9*10^14 ciklusa.

Za pravo resenje, izgleda treba da se vratimo u vreme pre pojave mikrokontrolera. Tada su koriscenji mikroprocesori i problem apsolutno pouzdanog rada se resavao tako sto je jedan prost a pouzdan oscilator resetovao stalno mikroprocesor. Ista tehnika se moze primeniti na MCU, imajuci u vidu da mnogi od njih imaju detekciju uzroka reseta. Ako je reset nastao od napajanja, onda se inicijalizuju varijable, a ako je nastao od signala na pinu za reset, onda se ne inicijalizuju varijable. Treba samo voditi racuna da MCU zavrsi jedan ciklus obrade pre nego sto dodje do novog reseta. MCU kada zavrsi ciklus udje u praznu petlju iz koje ga izbacuje sledeci reset.

Ne vidim bolje i jednostavnije resenje.

Pozdrav.

 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pouzdanost WDT-a20.07.2007. u 20:18 - pre 204 meseci
Malo si se presaltao sa pouzdanosti sistema na reset mikrokontrolera. To nikako nisu iste stvari, a pogotovo se ne moze govoriti o "najboljem i najjednostavnijem" rjesenju uopsteno. Kod nekih sistema taj pristup moze biti zgodan, a kod nekih apsolutno neprihvatljiv. Kod F-16 npr. postoje tri paralelna sistema upravljanja sa sve trostrukim zicama itd. Ako jedan zakaze, istog momenta sistem preuzima drugi, pa onda treci itd. u tom smislu. Ne bi bilo bas zgodno da ti se svaki cas resetuje avion dok ti npr. nisanis gdje ces da ispalis nuklearni projektil. Sa druge strane ako pravis sistem za podizanje garaznih vrata onda i to tvoje optimalno rjesenje zaista moze da bude blizu tom opisu.
Vec sam vise puta napominjao na ovom forumu da u embedded sistemima nema mnogo smisla govoriti o nekim rjesenjima ako se prica barem malo ne suzi na neku konkretnu oblast primjene.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Pouzdanost WDT-a21.07.2007. u 13:41 - pre 204 meseci
Odine D

Isorija racunarskih sistema za upravljanje ne pocinje sa MCU-ovima. Pravljeni su i sa mikroprocesorima koji su imali samo reset i spoljni interrupt i nista vise. Postojali su cipovi za ekspanziju spoljneg interrupta (skupe 8 linija, i kada se bilo koja promeni generisu interrupt, a mikroprocesor procita statusni bajt tog kola i vidi koji je to interrupt). Dakle jedino ostaje reset. Ako reset koristis da bi povecao pouzdanost sistema, onda pises softver na poseban nacin. Svaki softver za kontrolu procesa (i nisanjenja kof F-16) ima glavni petlju za koju se moze odrediti maksimalno vreme izvrsenja. Petlja, ustvari nije petlja, ona se zavrsava jednom praznom petljom u kojoj se ceka reset. Spoljne kolo resetuje periodicno sa nesto duzom periodom od najduzeg trajanja glavne petlje, recimo na 20 ms. Kada dodje do reseta, mikroprocesor ispita da li je to reset od napajanja (spoljasnje kolo za reset) ili od generatora reseta. Ako je od generatora reseta, program posle reseta skace na pocetak glavne petlje i prakticno program radi kontinualno kao i svaki drugi, samo mu je perioda petlje fiksna (sto je dobro u mnogim slucajevima). Dakle, nista nisam pobrkao jer sam to vec radio dok sam bio direktor razvoja u jednoj fabrici namenske proizvodnje koja je radila i za VTI Zarkovo (Vazduhoplovni institut JNA).

Pozdrav.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pouzdanost WDT-a24.07.2007. u 21:18 - pre 204 meseci
Dragi Korak,

malo se ti vise foliras nego sto imas kredita, (jer si ga vec odranije poceo nepromisljeno spiskavati) ali posto sam danas dobro raspolozen dacu ti samo zuti karton, ali ako nastavis sa ovakvom igrom zaradices brzo i crveni.

Takodje pozdrav.
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
*.zrlocal.net.



+28 Profil

icon Re: Pouzdanost WDT-a25.07.2007. u 18:56 - pre 204 meseci
Samo moderator može dati crveni karton.
Slažem se da neko treba da ga dobije,
ali to nije korak.

Izvinjavam se na Offtopic-u.

Molim moderatora da obriše ovu i prethodnu poruku.

 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pouzdanost WDT-a26.07.2007. u 20:48 - pre 204 meseci
Molim moderatora da se ovaj predlog o brisanju poruke ne uvazi. Posoje dobri razlozi za to, ali iz dzentlmenskih razloga odgovoricu mradomiru na pp.
 
Odgovor na temu

StillHere
Josip Štivić
Zagreb

Član broj: 146428
Poruke: 6
212.15.185.*



Profil

icon Re: Pouzdanost WDT-a26.07.2007. u 22:04 - pre 204 meseci
Zasto se uopce gubiti u programiranju i mogucnostima hoce li WDT MCU-a izvuci mrtvaca iz groba. Evo jedan prijedlog dobrog WDT-A koji ja koristim, external WDT MAX1232... Unatoc internom WDT-u imam i eksterni WDT kojeg spajam na port mikrokontolera i na reset. To bi u c-u izgledalo ovako:


#define WDT P1_7^P1_7 \\* P1_7 je 6 bit na portu 1 na kojem generiramo eksterni WDT

static unsigned int malo_morgen;
//*****************************************
void ucini_nesto (void){
WDT;
malo_morgen=0;
}
//*****************************************

main(){
T0_inic();
bla_bla_bla();
jos_malo_bla_bla_bla();
WDT; \\ tu i tamo lupimo eksterni WDT

while(1){
if(malo_morgen>1254) ucini_nesto();
malo_morgen++:
\\*******************
WDT; \\* NE ZABORAVI NA EKSTERNI WDT
\\**********************
}
}

Svakih kad nam pukne ili ako vec hocemo ici u nekakvo preciziranje mozemo i racunati kada moramo opaliti eksterni WDT.. U slucaju da eksterni WDT ostane bez promjene stanja porta on ce resetirati MCU bez obzira na interni WDT.... Pogledaj DATASHEET MAX1232

Sto se tice sigurnosti WDT-A... meni ovo jos nije zakazalo, a prava primjena je bila kada sam s atmelom pokretao snazne trofazne motore kraj jakog frenkvecijskog odasiljaca. Bez eksternog WDT-a nista ne bi radilo jer u takvim uvjetima MCU se blokira svakih skoro.

WDT je 100 % siguran jer se u toj situaciji moze otici tako daleko da MCU salje kombinaciju bitova koju prikuplja kroz sve svoje rutine prema eksternom WDT-U.. no ako nestane struje :)
InTheStillOfTheNight
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Pouzdanost WDT-a01.08.2007. u 11:21 - pre 203 meseci
Juce sam se vratio sa odmora, i vidim da ste malo skrenuli sa teme, te sam dobio zuti karton. Kada se daje zuti karton (tamo gde se stvarno daje) postoji sudija i svi vide zasto je dat. Sve sto sam napisao je apsolutno tacno i dokazivo (ako bas moram).

Inace, eksterni WDT (MAX1232) se resetuje nekom naredbom koja postavlja I/O pin na potrebnu vrednost, sto je jednako nepouzdano kao i interni WDT. Pouzdanost se moze povecati samo u hardveru WDT-a. Na primer, kada bi MAX1232 zahtevao na ulazu kratku sekvencu koja bi bila ovakva: Pad na log 0 koja traje 1us do 1.5us, skok na log 1 sa trajanjem 2us do 2.5us i ponovo pad na log 0 u trajanju od 1us do 1.5us pa skok na log 1. Na ovo bi se potrosilo najvise 5.5us, ali bi resetovanje WDTa- bilo mnogo pouzdanije. Naravno, ovo usloznjava hardver WDT-a.

U praksi, ni meni se nije desilo da WDT ne uspe da oporavi MCU. Zadnjih godina obavezno ugradjujem brojac aktiviranja WDT-a, i pratim tu pojavu na vecem brpju instaliranih uredjaja. Ako je od neke koristi da iznesem zapazanje da je aktiviranje WDT-a primetno redje kod MCU-a koji rade sa napajanjem u sirem opsegu (1.8V do 3.6V a napaja se sa 3.3V ili 2.7V do 5.5V a napaja se sa 5V) sto je logicno.

Medjutim, pitao sam se kolika je teoretska pouzdanost WDT-a, sobzirom da sam u fazi projektovanja jednog uredjaja za zeleznicu, koji kada se ugradi svi na njega zaborave, dok ne otkaze. Uredjaj se nalazi u lokomotivi i to me je nagnalo da razmisljam o teoretskoj pouzdanosti WDT-a, jer je ona granicna za pouzdanost rada uredjaja.

Pozdrav.

PS Odine D. ako ces poslati pp mradomiru, a ona se tice mene, onda je korektno da je posaljes i meni.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pouzdanost WDT-a02.08.2007. u 22:13 - pre 203 meseci
Korak,
sto je za tebe to je za tebe, sto je za mradomira to je za njega. Ja sam njemu objasnio zasto sam napisao to sto sam napisao. Nema tu nista za tebe. Ako budem imao nesto i za tebe poslacu ti.

Pozdrav.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Pouzdanost WDT-a03.08.2007. u 11:01 - pre 203 meseci
OK Odine. tvoje je pravo kome ces slati pp.

Kazes, nije za mene, uredu, ali ne kazes da li je o meni?

Pozdrav svima koji nista ne kriju.
 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
*.dialup.neobee.net.



+10 Profil

icon Re: Pouzdanost WDT-a03.08.2007. u 23:14 - pre 203 meseci
hm, sad bi još malo trebao da odradi WDT, pod uslovom da radi !
__*__
*___*
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
*.zrlocal.net.



+28 Profil

icon Re: Pouzdanost WDT-a04.08.2007. u 01:51 - pre 203 meseci
Reset :-)

Tema je lično meni veoma zanimljiva,
sad da li je o pouzdanosti sistema ili
o resetu, nije mnogo bitno.
Dobro je da se rasprava vodi o stručnim
stvarima, ali kada pređe u ti ovo ja ono...
nevodi ničemu. A lepo je gore boldirano
kada se kuca poruka, do sada nisam ni
obraćao pažnju. Bilo bi dobro da svi pročitaju.

Inače (sad se malo foliram) radio sam i ja
neke uređaje za lokomotive, nešto slično
semaforu. A pouzdanost takva da kada
je majstor (pera vozač) video da mi to
stavljamo samo iskomentarisao: koji k...
su ovo smislili, jel? de se to gasi.
Toliko o pouzdanosti sitema.
Svi se sećamo one nesreće u C.G.
pre par godina kada je voz izleteo
iz šina jer nije imao kočnice.
Naravno da je bilo ne znam koliko
nezavisnih sistema, ali šta vredi
kada su svi crkli, odnosno crkavali
jedan po jedan, a niko ih nije popravljao
dok nije otkazao i zadnji.

Zanimljivo mi je kod ovog MAX-a 1232,
koliko on u stvari povećava pouzdanost?
Oko 50% jel? Ali nije potpuno pouzdan.
Šta ako rikne. Bilo bi dobro da MCU
može da kontroliše ispravnost WDT-a.
Sigurnije rešenje bi bilo dva MCU-a koji se
međusobno proveravaju, a oba imaju
mogućnost da zaustave sistem.
Naravno postavlja se pitanje šta raditi
kada se detektuje greška, nekada nije
najbolje rešenje sve gasiti (primer sa avionom).
Ima ovde dosta svari za proučavanje, a mrzi
me da o tome čitam u knjigama, pa ako
neko ima nešto pametno ... shoot.


PS

Pao mi je na pamet jedan slučaj kada je jedan kolega
popravljao neku mašinu iz Hong Konga. Stigla polovna
a tamošnji majstori su kako šta crkne prevezivali, pa
na kraju valjda nisu imali više šta pa prodali nama.
Dakle - bio je jedan taster Emergency Stop jel,
svi znamo šta znači. I radio je, jedino što je svaki
put izbijao osigurače, ali šta ćeš digneš ih i teraj.
E pa kolega uhvati jedan dan da vidi šta se to dešava
sa Emergency Stop-om, isprati žice i vidi da su
direkt vezane na fazu i nulu. E to je sto posto
pouzdanost sistema, rokneš taster i pogasiš
sve mašine u pogonu, plus rešo za kafu.
Što je sigurno, sigurno je.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Pouzdanost WDT-a04.08.2007. u 12:59 - pre 203 meseci
mradomir-e u pravu si, ne volim da odstupam od teme i da prelazim na rekla kazala.

Dakle, ja sam postavio dilemu: hardverski sve je ispravno, a uredjaj je u ambijentu sa znatnim elektromagnetnim smetnjama, i povremeno zbog njih zaluta. Kolika je verovatnoca (P) da u tom lutanju dodje do nezeljenog resetovanja WDT-a, sto prakticno WDT cini nekorisnim.

Ako se WDT resetuje jednom naredbim onda je P vece nego ako je za isto potrebno napisati 2 naredbe. Tako se kod HC11 WDT resetuje upisom u odredjenu lokaciju vrednost 0xAA, a zatim 0x55 (ili obrnuto). Vidim da postoji nesto slicno u kod nekih tipova jedne druge familije mikrokontrolera, ali ne secam se koje. Kod HC08 situacija je katastrofalna, tamo se WDT resetuje jednom naredbom upisom bilo cega u odredjenu memorijsku lokaciju. Da stvar bude jos gora, za ovaj upis nije vazno koji je adresni mod primenjen (a ima ih 8), pa se WDT moze resetovati i upisom u indirektno adresiranu lokaciju, a vrednost indeksnog registra nije poznata u vreme kompajliranja. Kada PIC koristi WDR (mislim da se tako zove naredba za reset WDT-a), onda se posle kompajliranja moze proveriti kod i videti gde se WDR kod pojavljuje a da nije navedena ta naredba. To moze biti u tablicama ili u parametru uz neku naredbu. Onda programer ima nekih mogucnosti da stvar popravi. Taj princip popravke nije moguc kod HC08 zbog mogucnosti resetovanja WDT-a koriscenjem indirektnog adresiranja. Izvinjavam se sto ovaj deo teksta ponavljam, ali to cinim da bi se vratili temi.

Spoljne WDT kolo se takodje resetuje jednom naredbom (MAX1232), pa je situacija ista, samo sto je jedan kod zamenjen drugim. Problemi ostaju isti. Resenje je da se resetovanje WDT-a ucini slozenijim, pa ce onda P da se priblizava nuli. Zamisli da se WDT resetuje upisom tacno odredjenih 8 bajtova u odredjene lokacije. Verovatnoca da se takva sekvenca koda nadje u tablici, ili bilo gde u kodu je zanemarljiva (ali i kada je verovatnoca da se nesto deci =0 to ne znaci da se nece desiti).

Ostaje kao najpouzdanije resenje periodicno resetovanje MCU-a, ali to zahteva dve stvari: 1. razlikovanje reseta od napajanja i resetovanja o kojem govorim, i 2. program mora biti pisan na poseban nacin koji uzima u obzir cinjenicu da se MCU periodicno resetuje. Na prvi pogled, cini se da je pisanje takvog softvera tesko, ali nije, jer svaki program koji upravlja nekim procesom ima glavni petlju koju automatski ponavlja. Umesto toga, glavna petlja bi se ponavljala zamo na reset (ako nije od napajanja). Problem se javlja kod interrupt procedura koje mogu biti prekinute u nekontrolisanom trenutku, to znaci da najvecu paznju treba posvetiti interrupt mehanizmima. Interrupt proceduru treba napraviti tako da se ne pravi steta ako dodje do reseta, kako to uraditi, zavisi od konkretnog slucaja.

Ja bih bio zadovoljan da se resetovanje WDT-a ucini slozenijim i mislim da bi to bilo najbolje prakticno resenje. Kako sadasnji MCU-ovi to nemaju, to je moguce samo sa spoljnim kolom WDT-a, eto ideje: napraviti spoljne kolo WDT-a koje se na malo komplikovaniji nacin resetuje.

Sada mi je pala na pamet jedna:

Uzeti MAX1232, iz nekog I/O pina gurati bitove u jedan sift registar sa paralelnim izlazom (4 ili 8 bita), sa par gejtova detektovati unapred odredjenu kombinaciju bitova na izlazu sift registra i sa time resetovati MAX1232. Ovo prilicno usloznjava resetovanje WDT-a, a upotrebljeni sift registar i gejtovi su nista manje pouzdane komponente od MCU-a ili MAX1232, sto nece umanjiti pouzdanost rada celog uredjaja.

Mozda ce neko imati bolju ideju, bas bi bilo interesantno da ih razmenimo.

Pozdrav.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Pouzdanost WDT-a

Strane: 1 2

[ Pregleda: 6130 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.