korak Nis
Član broj: 125522 Poruke: 622 *.dynamic.sbb.co.yu.
|
mradomir-e,
potpuno se slazem sa tobom. Ali, ne razmatram slucaj kvara hardvera, vec pouzdanosti izvrsavanja softvera. Zasto, zato jer je uvek moguce predvideti mnoge uzroke koje mogu izazvati kvar uredjaja. Napravi se dobro napajanje, razne zastite u njemu, galvansko odvajanje ulaznio/izlaznih signala i t. d. Naravno ne moze se uradjej zastititi od udara groma ili nasilnog postupanja sa njim. Dakle, ne razmatram kvar uredjaja, vec pouzdanost ispravnog izvrsavanja softvera, cak dozvoljavam da smetnja poremeti isparavno izvrsenje programa, i tada me zanima koliko ce pouzdano pomoci WDT. Ako WDT odradi svoju funkciju, i to smatram ispravnim izvrsenjem programa. Znaci razmatram samo situacije u kojima WDT nije u mogucnosti da pomogne. Ni jedan proizvodjac MCU-a nije dao to razmatranje (barem ja nisam video) osim sto je Motorola dala neku brosuru sa uputstvima kako projektovati PCB da bi se povecala imunost na EM smetnje uz dosta matemeatike, i nesto malo softverskih uputstava gde sugerisu koje kodove upisati u prazan deo flash-a. Preporucuju nop instrukcije, jer je ona 1 bajt duzine a na kraju skok na pocetak programa. Druga preporuka im je swi (softverski interrupt) koji moze odmah da vrati program na pocetak izvrsavanja. To je OK ako u lutanju program ode u prazan deo flash-a, ali to ne mora da se desi.
Spoljni WDT je obicno jedan oscilator koji moze da se resetuje, i ako se resetuje na vreme on nikada ne generise impuls na izlazu. Njega smetnja ne moze da izbaci iz funkcije (da prestane da radi i slicno) vec moze da poremeti samo jedan njegov ciklus. Zamisli obican cip 555, koji resetujes tako sto impulsom iz MCU-a preko tranzistora stalno praznis njegov kondenzator. Njemu smetnja ne moze nista, osim da za trnutak ne generise nesto nezeljeno, ali ce odmah posle toga nastaviti sa normalnim radom. Ostaje problem kako da ga resetujes. To nesme biti uradjeno jednom naredbom, jer se onda problem svodi na onaj sa internim WDT-om. Izneo sam ideju da se to uradi preko sift registra, za sta je potreban niz naredbi koje na nezeljenom mestu (tablici) ne mogu da se nadju, bar je verovatnoca za to zanemarljiva. Naravno, za realizaciju ove ideje potrebna su 2 I/O pina, jedan da klokuje sift registar, a drugi da ubacuje bitove u njega.
Dakle, slazemo se da vecu pouzdanost daje spoljasnje kolo WDT-a, a mislim da se slazemo da on nesme da bude resetovano samo jednom naredbom (onda nismo nista uradili) i treba da nadjemo samo najjednostavnije i najjeftinije resenje za to.
Moj predlog zahteva NE555, NPN tranzistor male snage (ili MAX1232 umest oba) sift registar (na primer 74HC164) i 8-o bitni komparator 74HC688 ciji izlaz resetuje WDT.
Dobrodosla bi bila ideja koja ce i ovo minimizirati.
Pozdrav.
|